From 481cb5c28a2f80f8be9d1e04035cae415d7054af Mon Sep 17 00:00:00 2001 From: Zollner Robert Date: Fri, 4 Oct 2013 23:30:24 +0300 Subject: [PATCH 001/247] [-] BO : Fixed Bug what displayed Dashboard sales statistics in wrong currency --- controllers/admin/AdminHomeController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminHomeController.php b/controllers/admin/AdminHomeController.php index 45797273e..279ce6d32 100644 --- a/controllers/admin/AdminHomeController.php +++ b/controllers/admin/AdminHomeController.php @@ -303,7 +303,7 @@ class AdminHomeControllerCore extends AdminController public function getMonthlyStatistics() { - $currency = Tools::setCurrency($this->context->cookie); + $currency = Tools::setCurrency(NULL); $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT IFNULL(SUM(`total_paid_real` / conversion_rate), "0") as total_sales, COUNT(*) as total_orders FROM `'._DB_PREFIX_.'orders` @@ -400,7 +400,7 @@ class AdminHomeControllerCore extends AdminController $chart->getCurve(1)->setPoint(strtotime($row['invoice_date'].' 02:00:00'), $row['total_converted']); $chart->setSize(580, 170); $chart->setTimeMode(strtotime('-7 DAYS', time()), time(), 'd'); - $currency = Tools::setCurrency($this->context->cookie); + $currency = Tools::setCurrency(NULL); $chart->getCurve(1)->setLabel($this->l('Sales + Tax').' ('.strtoupper($currency->iso_code).')'); $content .= $chart->fetch(); From 1787923c4c20b2d6c809ac271d65fc0a5e653b2f Mon Sep 17 00:00:00 2001 From: Zollner Robert Date: Sat, 5 Oct 2013 00:42:29 +0300 Subject: [PATCH 002/247] [-] BO : Fixed Bug what displayed Dashboard sales statistics in wrong currency (changed NULL to lowercase) --- controllers/admin/AdminHomeController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminHomeController.php b/controllers/admin/AdminHomeController.php index 279ce6d32..d923c051c 100644 --- a/controllers/admin/AdminHomeController.php +++ b/controllers/admin/AdminHomeController.php @@ -303,7 +303,7 @@ class AdminHomeControllerCore extends AdminController public function getMonthlyStatistics() { - $currency = Tools::setCurrency(NULL); + $currency = Tools::setCurrency(null); $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT IFNULL(SUM(`total_paid_real` / conversion_rate), "0") as total_sales, COUNT(*) as total_orders FROM `'._DB_PREFIX_.'orders` @@ -400,7 +400,7 @@ class AdminHomeControllerCore extends AdminController $chart->getCurve(1)->setPoint(strtotime($row['invoice_date'].' 02:00:00'), $row['total_converted']); $chart->setSize(580, 170); $chart->setTimeMode(strtotime('-7 DAYS', time()), time(), 'd'); - $currency = Tools::setCurrency(NULL); + $currency = Tools::setCurrency(null); $chart->getCurve(1)->setLabel($this->l('Sales + Tax').' ('.strtoupper($currency->iso_code).')'); $content .= $chart->fetch(); From 30adb0932da79aae9700e280f3970292e6d2e95d Mon Sep 17 00:00:00 2001 From: Zollner Robert Date: Mon, 7 Oct 2013 23:42:26 +0300 Subject: [PATCH 003/247] [-] BO : pass correct typed parameter to setCurrency --- controllers/admin/AdminHomeController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminHomeController.php b/controllers/admin/AdminHomeController.php index d923c051c..50fa95051 100644 --- a/controllers/admin/AdminHomeController.php +++ b/controllers/admin/AdminHomeController.php @@ -303,7 +303,7 @@ class AdminHomeControllerCore extends AdminController public function getMonthlyStatistics() { - $currency = Tools::setCurrency(null); + $currency = Tools::setCurrency((object)array('id_currency' => null)); $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT IFNULL(SUM(`total_paid_real` / conversion_rate), "0") as total_sales, COUNT(*) as total_orders FROM `'._DB_PREFIX_.'orders` @@ -400,7 +400,7 @@ class AdminHomeControllerCore extends AdminController $chart->getCurve(1)->setPoint(strtotime($row['invoice_date'].' 02:00:00'), $row['total_converted']); $chart->setSize(580, 170); $chart->setTimeMode(strtotime('-7 DAYS', time()), time(), 'd'); - $currency = Tools::setCurrency(null); + $currency = Tools::setCurrency((object)array('id_currency' => null)); $chart->getCurve(1)->setLabel($this->l('Sales + Tax').' ('.strtoupper($currency->iso_code).')'); $content .= $chart->fetch(); From ae7d33effe1dd13b789d2b30db63991dcea65960 Mon Sep 17 00:00:00 2001 From: Krystian Podemski Date: Tue, 8 Oct 2013 11:11:24 +0200 Subject: [PATCH 004/247] [*] CORE: Add phone_mobile to address format I honestly do not know why you decided by default to show only the first field of the phone :) Users often ask me why they don't see their mobile phone on orders in BO. --- install-dev/data/xml/address_format.xml | 732 ++++++++++++++++-------- 1 file changed, 488 insertions(+), 244 deletions(-) diff --git a/install-dev/data/xml/address_format.xml b/install-dev/data/xml/address_format.xml index fd195888b..68c7ed274 100644 --- a/install-dev/data/xml/address_format.xml +++ b/install-dev/data/xml/address_format.xml @@ -13,7 +13,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -23,7 +24,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -33,7 +35,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -42,7 +45,8 @@ address1 address2 city State:name postcode Country:name -phone +phone +phone_mobile firstname lastname @@ -52,7 +56,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -62,7 +67,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -72,7 +78,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -82,7 +89,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -92,7 +100,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -103,7 +112,8 @@ address2 postcode city State:name Country:name -phone +phone +phone_mobile firstname lastname @@ -114,7 +124,8 @@ address2 postcode city State:name Country:name -phone +phone +phone_mobile firstname lastname @@ -124,7 +135,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -134,7 +146,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -144,7 +157,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -154,7 +168,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -164,7 +179,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -174,7 +190,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -184,7 +201,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -194,7 +212,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -204,7 +223,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -212,7 +232,8 @@ company address1 address2 city, State:name postcode Country:name -phone +phone +phone_mobile firstname lastname @@ -222,7 +243,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -232,7 +254,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -242,7 +265,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -252,7 +276,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -262,7 +287,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -272,7 +298,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -282,7 +309,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -292,7 +320,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -302,7 +331,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -312,7 +342,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -322,7 +353,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -332,7 +364,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -342,7 +375,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -352,7 +386,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -362,7 +397,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -372,7 +408,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -382,7 +419,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -392,7 +430,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -402,7 +441,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -412,7 +452,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -422,7 +463,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -432,7 +474,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -443,7 +486,8 @@ address2 postcode city State:name Country:name -phone +phone +phone_mobile firstname lastname @@ -453,7 +497,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -463,7 +508,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -473,7 +519,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -483,7 +530,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -493,7 +541,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -503,7 +552,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -513,7 +563,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -523,7 +574,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -533,7 +585,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -543,7 +596,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -553,7 +607,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -563,7 +618,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -573,7 +629,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -583,7 +640,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -593,7 +651,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -603,7 +662,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -613,7 +673,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -623,7 +684,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -633,7 +695,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -643,7 +706,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -653,7 +717,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -663,7 +728,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -673,7 +739,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -683,7 +750,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -693,7 +761,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -703,7 +772,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -713,7 +783,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -723,7 +794,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -733,7 +805,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -743,7 +816,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -753,7 +827,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -763,7 +838,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -773,7 +849,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -783,7 +860,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -793,7 +871,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -803,7 +882,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -813,7 +893,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -823,7 +904,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -833,7 +915,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -843,7 +926,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -853,7 +937,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -863,7 +948,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -873,7 +959,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -883,7 +970,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -893,7 +981,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -903,7 +992,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -913,7 +1003,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -923,7 +1014,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -933,7 +1025,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -943,7 +1036,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -953,7 +1047,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -963,7 +1058,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -973,7 +1069,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -983,7 +1080,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -993,7 +1091,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1003,7 +1102,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1013,7 +1113,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1023,7 +1124,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1033,7 +1135,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1043,7 +1146,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1053,7 +1157,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1063,7 +1168,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1073,7 +1179,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1083,7 +1190,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1093,7 +1201,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1103,7 +1212,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1114,7 +1224,8 @@ address2 postcode city State:name Country:name -phone +phone +phone_mobile firstname lastname @@ -1124,7 +1235,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1134,7 +1246,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1144,7 +1257,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1154,7 +1268,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1164,7 +1279,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1174,7 +1290,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1184,7 +1301,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1194,7 +1312,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1204,7 +1323,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1214,7 +1334,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1224,7 +1345,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1234,7 +1356,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1244,7 +1367,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1254,7 +1378,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1264,7 +1389,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1274,7 +1400,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1284,7 +1411,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1294,7 +1422,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1304,7 +1433,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1314,7 +1444,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1324,7 +1455,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1334,7 +1466,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1344,7 +1477,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1354,7 +1488,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1364,7 +1499,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1374,7 +1510,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1384,7 +1521,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1394,7 +1532,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1404,7 +1543,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1414,7 +1554,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1424,7 +1565,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1434,7 +1576,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1444,7 +1587,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1455,7 +1599,8 @@ address2 postcode city State:name Country:name -phone +phone +phone_mobile firstname lastname @@ -1465,7 +1610,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1475,7 +1621,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1485,7 +1632,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1495,7 +1643,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1505,7 +1654,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1515,7 +1665,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1525,7 +1676,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1535,7 +1687,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1545,7 +1698,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1555,7 +1709,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1565,7 +1720,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1575,7 +1731,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1585,7 +1742,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1595,7 +1753,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1605,7 +1764,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1615,7 +1775,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1625,7 +1786,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1635,7 +1797,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1645,7 +1808,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1655,7 +1819,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1665,7 +1830,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1675,7 +1841,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1685,7 +1852,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1695,7 +1863,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1705,7 +1874,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1715,7 +1885,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1725,7 +1896,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1735,7 +1907,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1745,7 +1918,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1755,7 +1929,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1765,7 +1940,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1775,7 +1951,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1785,7 +1962,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1795,7 +1973,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1805,7 +1984,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1815,7 +1995,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1825,7 +2006,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1835,7 +2017,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1845,7 +2028,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1855,7 +2039,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1865,7 +2050,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1875,7 +2061,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1885,7 +2072,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1895,7 +2083,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1905,7 +2094,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1915,7 +2105,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1925,7 +2116,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1935,7 +2127,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1945,7 +2138,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1955,7 +2149,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1965,7 +2160,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1975,7 +2171,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1985,7 +2182,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -1995,7 +2193,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2005,7 +2204,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2015,7 +2215,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2025,7 +2226,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2035,7 +2237,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2045,7 +2248,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2055,7 +2259,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2065,7 +2270,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2075,7 +2281,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2085,7 +2292,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2095,7 +2303,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2105,7 +2314,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2115,7 +2325,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2125,7 +2336,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2135,7 +2347,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2145,7 +2358,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2155,7 +2369,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2165,7 +2380,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2175,7 +2391,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2185,7 +2402,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2195,7 +2413,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2205,7 +2424,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2215,7 +2435,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2225,7 +2446,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2235,7 +2457,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2245,7 +2468,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2255,7 +2479,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2265,7 +2490,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2275,7 +2501,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2285,7 +2512,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2295,7 +2523,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2305,7 +2534,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2315,7 +2545,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2325,7 +2556,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2335,7 +2567,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2345,7 +2578,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2355,7 +2589,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2365,7 +2600,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2375,7 +2611,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2385,7 +2622,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2395,7 +2633,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2405,7 +2644,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2415,7 +2655,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2425,7 +2666,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2435,7 +2677,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile firstname lastname @@ -2445,7 +2688,8 @@ address1 address2 postcode city Country:name -phone +phone +phone_mobile From 9d5a9225e502884f716b48914c44d5c535c85c69 Mon Sep 17 00:00:00 2001 From: Axome Date: Fri, 11 Oct 2013 18:17:55 +0200 Subject: [PATCH 005/247] Correct some "bad query" in the admin products getList Here the wrong Sql generated : SELECT SQL_CALC_FOUND_ROWS a.`id_product`,b.name as name,`reference`,a.price as price,a.active as active , MAX(i.id_image) id_image,cl.name `name_category` , a.`price`, 0 AS price_final, sav.`quantity` as sav_quantity, a.`active` FROM `ps_product` a LEFT JOIN `ps_product_lang` b ON (b.`id_product` = a.`id_product` AND b.`id_lang` = 2 AND b.`id_shop` = 1) LEFT JOIN `ps_image` i ON (i.`id_product` = a.`id_product` AND i.cover=1)LEFT JOIN `ps_category_lang` cl ON (a.`id_category_default` = cl.`id_category` AND b.`id_lang` = cl.`id_lang` AND cl.id_shop = 1) LEFT JOIN `ps_stock_available` sav ON (sav.`id_product` = a.`id_product` AND sav.`id_product_attribute` = 0 AND sav.id_shop = 1 ) WHERE 1 AND a.`active` = 0 GROUP BY a.id_product ORDER BY quantity desc LIMIT 0,50 'quantity' is ambigus (for the ORDER BY) --- classes/controller/AdminController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 9fcc3d66e..d202ccada 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -2284,7 +2284,7 @@ class AdminControllerCore extends Controller (isset($this->_filter) ? $this->_filter : '').$where_shop.' '.(isset($this->_group) ? $this->_group.' ' : '').' '.$having_clause.' - ORDER BY '.(($order_by == $this->identifier) ? 'a.' : '').pSQL($order_by).' '.pSQL($order_way). + ORDER BY '.(($order_by == $this->identifier || $order_by == 'quantity') ? 'a.' : '').pSQL($order_by).' '.pSQL($order_way). ($this->_tmpTableFilter ? ') tmpTable WHERE 1'.$this->_tmpTableFilter : ''). (($use_limit === true) ? ' LIMIT '.(int)$start.','.(int)$limit : ''); @@ -3042,4 +3042,4 @@ class AdminControllerCore extends Controller return $return; } -} \ No newline at end of file +} From 85c6e799c36fa5a45ccddb70b2fa55aec79bc0b0 Mon Sep 17 00:00:00 2001 From: indesign47 Date: Sat, 12 Oct 2013 11:33:36 +0200 Subject: [PATCH 006/247] [+] BO : AdminImport add entity Alias --- controllers/admin/AdminImportController.php | 75 ++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 58fa8f527..ffbf617b1 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -88,6 +88,7 @@ class AdminImportControllerCore extends AdminController $this->l('Addresses'), $this->l('Manufacturers'), $this->l('Suppliers'), + $this->l('Alias'), ); // @since 1.5.0 @@ -360,7 +361,6 @@ class AdminImportControllerCore extends AdminController 'postcode' => 'X' ); break; - case $this->entities[$this->l('Manufacturers')]: case $this->entities[$this->l('Suppliers')]: //Overwrite validators AS name is not MultiLangField @@ -392,6 +392,23 @@ class AdminImportControllerCore extends AdminController 'shop' => Shop::getGroupFromShop(Configuration::get('PS_SHOP_DEFAULT')), ); break; + case $this->entities[$this->l('Alias')]: + //Overwrite required_fields + $this->required_fields = array( + 'alias', + 'search', + ); + $this->available_fields = array( + 'no' => array('label' => $this->l('Ignore this column')), + 'id' => array('label' => $this->l('ID')), + 'alias' => array('label' => $this->l('Alias *')), + 'search' => array('label' => $this->l('Search *')), + 'active' => array('label' => $this->l('Active')), + ); + self::$default_values = array( + 'active' => '1', + ); + break; } // @since 1.5.0 @@ -2435,6 +2452,56 @@ class AdminImportControllerCore extends AdminController $this->closeCsvFile($handle); } + public function aliasImport() + { + $this->receiveTab(); + $handle = $this->openCsvFile(); + AdminImportController::setLocale(); + for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++) + { + if (Tools::getValue('convert')) + $line = $this->utf8EncodeArray($line); + $info = AdminImportController::getMaskedRow($line); + + AdminImportController::setDefaultValues($info); + + if (Tools::getValue('forceIDs') && isset($info['id']) && (int)$info['id']) + $alias = new Alias((int)$info['id']); + else + { + if (array_key_exists('id', $info) && (int)$info['id'] && Alias::existsInDatabase((int)$info['id'], 'alias')) + $alias = new Alias((int)$info['id']); + else + $alias = new Alias(); + } + + AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $alias); + + $res = false; + if (($field_error = $alias->validateFields(UNFRIENDLY_ERROR, true)) === true && + ($lang_field_error = $alias->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) + { + if ($alias->id && $alias->aliasExists($alias->id)) + $res = $alias->update(); + if (!$res) + $res = $alias->add(); + + if (!$res) + $this->errors[] = Db::getInstance()->getMsgError().' '.sprintf( + Tools::displayError('%1$s (ID: %2$s) cannot be saved'), + $info['name'], + (isset($info['id']) ? $info['id'] : 'null') + ); + } + else + { + $this->errors[] = $this->l('Alias is invalid').' ('.$alias->name.')'; + $this->errors[] = ($field_error !== true ? $field_error : '').(isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : ''); + } + } + $this->closeCsvFile($handle); + } + /** * @since 1.5.0 */ @@ -2782,6 +2849,9 @@ class AdminImportControllerCore extends AdminController if (preg_match('/^[0-9]+(\-(.*))?\.jpg$/', $d)) unlink(_PS_SUPP_IMG_DIR_.$d); break; + case $this->entities[$this->l('Alias')]: + Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'alias`'); + break; } Image::clearTmpDir(); return true; @@ -2880,6 +2950,9 @@ class AdminImportControllerCore extends AdminController $this->supplierImport(); $this->clearSmartyCache(); break; + case $this->entities[$import_type = $this->l('Alias')]: + $this->aliasImport(); + break; } // @since 1.5.0 From 2afbe8fd04b3c3b43d75cea97db1f51cc31d7775 Mon Sep 17 00:00:00 2001 From: indesign47 Date: Sat, 12 Oct 2013 11:39:29 +0200 Subject: [PATCH 007/247] Create alias_import.csv --- docs/csv_import/alias_import.csv | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/csv_import/alias_import.csv diff --git a/docs/csv_import/alias_import.csv b/docs/csv_import/alias_import.csv new file mode 100644 index 000000000..b64a435be --- /dev/null +++ b/docs/csv_import/alias_import.csv @@ -0,0 +1,3 @@ +id;Alias *;Search *;Active (0/1) +3;microsft,micro;microsoft;1 +4;adbe,adaub;adobe;1 From 4f9191fe0c037efa1066325d90e512590f38ed85 Mon Sep 17 00:00:00 2001 From: indesign47 Date: Sat, 12 Oct 2013 11:45:07 +0200 Subject: [PATCH 008/247] Update form.tpl --- .../template/controllers/import/helpers/form/form.tpl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl index 09a50329f..181508404 100644 --- a/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl +++ b/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl @@ -77,6 +77,7 @@
  • {l s='Sample Addresses file'}
  • {l s='Sample Manufacturers file'}
  • {l s='Sample Suppliers file'}
  • +
  • {l s='Sample Alias file'}
  • {if $PS_ADVANCED_STOCK_MANAGEMENT}
  • {l s='Supply Orders sample file'}
  • {l s='Supply Orders Details sample file'}
  • @@ -203,12 +204,12 @@ }); $("select#entity").change(function(){ - if ($("#entity > option:selected").val() == 7 || $("#entity > option:selected").val() == 8) + if ($("#entity > option:selected").val() == 8 || $("#entity > option:selected").val() == 9) $("label[for=truncate],#truncate").hide(); else $("label[for=truncate],#truncate").show(); - if ($("#entity > option:selected").val() == 8) + if ($("#entity > option:selected").val() == 9) { $(".import_supply_orders_details").show(); $('input[name=multiple_value_separator]').val('|'); @@ -226,7 +227,7 @@ $(".import_products_categories, label[for=regenerate], #regenerate").show(); else $(".import_products_categories, label[for=regenerate], #regenerate").hide(); - if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 3 || $("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6) + if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 3 || $("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6 || $("#entity > option:selected").val() == 7) $("label[for=forceIDs], #forceIDs").show(); else $("label[for=forceIDs], #forceIDs").hide(); @@ -260,4 +261,4 @@ }); }; }); - \ No newline at end of file + From 0a441b9a4b79cc191f52e36bbd168e6552764cac Mon Sep 17 00:00:00 2001 From: indesign47 Date: Sat, 12 Oct 2013 11:49:27 +0200 Subject: [PATCH 009/247] Update Alias.php --- classes/Alias.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/classes/Alias.php b/classes/Alias.php index b6fda0903..932495206 100644 --- a/classes/Alias.php +++ b/classes/Alias.php @@ -124,5 +124,21 @@ class AliasCore extends ObjectModel { return Configuration::get('PS_ALIAS_FEATURE_ACTIVE'); } + + /** + * This method is allow to know if a alias exist for AdminImportController + * @since 1.5.7 + * @return bool + */ + public static function aliasExists($id_alias) + { + $row = Db::getInstance()->getRow(' + SELECT `id_alias` + FROM '._DB_PREFIX_.'alias a + WHERE a.`id_alias` = '.(int)$id_alias + ); + + return isset($row['id_alias']); + } } From a10dcab6e74d138a2f3a3f558ec7d66b1e9d9e10 Mon Sep 17 00:00:00 2001 From: kiropowered Date: Sat, 12 Oct 2013 14:28:27 +0200 Subject: [PATCH 010/247] Update StockMvt.php Fix bug if product have attribute --- classes/stock/StockMvt.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/stock/StockMvt.php b/classes/stock/StockMvt.php index 83bd79e08..2245cf648 100644 --- a/classes/stock/StockMvt.php +++ b/classes/stock/StockMvt.php @@ -236,7 +236,7 @@ class StockMvtCore extends ObjectModel $query->innerJoin('stock', 's', 's.id_stock = sm.id_stock'); $query->innerJoin('warehouse', 'w', 'w.id_warehouse = s.id_warehouse'); $query->where('sm.sign = 1'); - $query->where('s.id_product = '.(int)$id_product.' OR s.id_product_attribute = '.(int)$id_product_attribute); + $query->where('s.id_product = '.(int)$id_product.' AND s.id_product_attribute = '.(int)$id_product_attribute); $query->orderBy('date_add DESC'); $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); From 8d7e96176c5744d3acbc265583cfab0c802f84aa Mon Sep 17 00:00:00 2001 From: ldecoker Date: Mon, 14 Oct 2013 09:38:04 +0200 Subject: [PATCH 011/247] SEO - make sure module and controller name are in lowercase For module controller, make sure that the name of the controller and the module are saved in lowercase. Otherwise the route will not be found in getModuleLink. --- classes/Meta.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/Meta.php b/classes/Meta.php index 76933c88b..d5bcbd414 100644 --- a/classes/Meta.php +++ b/classes/Meta.php @@ -85,11 +85,11 @@ class MetaCore extends ObjectModel // Add modules controllers to list (this function is cool !) foreach (glob(_PS_MODULE_DIR_.'*/controllers/front/*.php') as $file) { - $filename = basename($file, '.php'); + $filename = strtolower(basename($file, '.php')); if ($filename == 'index') continue; - $module = basename(dirname(dirname(dirname($file)))); + $module = strtolower(basename(dirname(dirname(dirname($file))))); $selected_pages[$module.' - '.$filename] = 'module-'.$module.'-'.$filename; } From a377ecd5717d3de2d38241add4521df302d9ff5d Mon Sep 17 00:00:00 2001 From: ldecoker Date: Mon, 14 Oct 2013 09:53:50 +0200 Subject: [PATCH 012/247] Update Meta.php Use strtolower from Tools class. --- classes/Meta.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/Meta.php b/classes/Meta.php index d5bcbd414..4e911fe72 100644 --- a/classes/Meta.php +++ b/classes/Meta.php @@ -85,11 +85,11 @@ class MetaCore extends ObjectModel // Add modules controllers to list (this function is cool !) foreach (glob(_PS_MODULE_DIR_.'*/controllers/front/*.php') as $file) { - $filename = strtolower(basename($file, '.php')); + $filename = Tools::strtolower(basename($file, '.php')); if ($filename == 'index') continue; - $module = strtolower(basename(dirname(dirname(dirname($file))))); + $module = Tools::strtolower(basename(dirname(dirname(dirname($file))))); $selected_pages[$module.' - '.$filename] = 'module-'.$module.'-'.$filename; } From af9182dad549bc77bd26c4ca038a27e5daa0488a Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 10:51:17 +0200 Subject: [PATCH 013/247] [-] CORE , follow up https://github.com/kiropowered/PrestaShop/commit/b87e934a66a15d4f68e573f5afa9494505a60e28 and https://github.com/kiropowered/PrestaShop/commit/a10dcab6e74d138a2f3a3f558ec7d66b1e9d9e10 --- classes/stock/StockMvt.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/classes/stock/StockMvt.php b/classes/stock/StockMvt.php index 2245cf648..de75d91aa 100644 --- a/classes/stock/StockMvt.php +++ b/classes/stock/StockMvt.php @@ -236,7 +236,10 @@ class StockMvtCore extends ObjectModel $query->innerJoin('stock', 's', 's.id_stock = sm.id_stock'); $query->innerJoin('warehouse', 'w', 'w.id_warehouse = s.id_warehouse'); $query->where('sm.sign = 1'); - $query->where('s.id_product = '.(int)$id_product.' AND s.id_product_attribute = '.(int)$id_product_attribute); + if ($id_product_attribute) + $query->where('s.id_product = '.(int)$id_product.' AND s.id_product_attribute = '.(int)$id_product_attribute); + else + $query->where('s.id_product = '.(int)$id_product); $query->orderBy('date_add DESC'); $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); From 3bc02bbe1004717d532b9ed0820782ce1524b856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Mon, 14 Oct 2013 10:56:38 +0200 Subject: [PATCH 014/247] // fields are already correctly formated when they are in a object coming from the database --- controllers/admin/AdminProductsController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index 763938627..d6b44706c 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -367,9 +367,9 @@ class AdminProductsControllerCore extends AdminController { if (is_array($default_product->$field_name)) foreach ($default_product->$field_name as $key => $value) - $this->object->{$field_name}[$key] = ObjectModel::formatValue($value, $def['fields'][$field_name]['type']); + $this->object->{$field_name}[$key] = $value; else - $this->object->$field_name = ObjectModel::formatValue($default_product->$field_name, $def['fields'][$field_name]['type']); + $this->object->$field_name = $default_product->$field_name; } } $this->object->loadStockData(); From 3282bd19e41b30bf1c338037a969b24c54a697cd Mon Sep 17 00:00:00 2001 From: Jerome Nadaud Date: Mon, 14 Oct 2013 10:59:20 +0200 Subject: [PATCH 015/247] // Small fix --- classes/helper/HelperList.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/classes/helper/HelperList.php b/classes/helper/HelperList.php index 6d9bd6cb8..8f2ed09f0 100644 --- a/classes/helper/HelperList.php +++ b/classes/helper/HelperList.php @@ -444,13 +444,13 @@ class HelperListCore extends Helper self::$cache_lang['Delete'] = $this->l('Delete', 'Helper'); if (!array_key_exists('DeleteItem', self::$cache_lang)) - self::$cache_lang['DeleteItem'] = $this->l('Delete selected item?', 'Helper', false, false); + self::$cache_lang['DeleteItem'] = $this->l('Delete selected item?', 'Helper', true, false); if (!array_key_exists('Name', self::$cache_lang)) - self::$cache_lang['Name'] = $this->l('Name:', 'Helper', false, false); + self::$cache_lang['Name'] = $this->l('Name:', 'Helper', true, false); if (!is_null($name)) - $name = '\n\n'.self::$cache_lang['Name'].' '.$name; + $name = addcslashes('\n\n'.self::$cache_lang['Name'].' '.$name, '\''); $data = array( $this->identifier => $id, @@ -459,7 +459,7 @@ class HelperListCore extends Helper ); if ($this->specificConfirmDelete !== false) - $data['confirm'] = !is_null($this->specificConfirmDelete) ? '\r'.$this->specificConfirmDelete : Tools::safeOutput(addcslashes(self::$cache_lang['DeleteItem'].$name, '\'')); + $data['confirm'] = !is_null($this->specificConfirmDelete) ? '\r'.$this->specificConfirmDelete : Tools::safeOutput(self::$cache_lang['DeleteItem'].$name); $tpl->assign(array_merge($this->tpl_delete_link_vars, $data)); From 5e407db21e3e30a1a5fa94b9558314ffa21af407 Mon Sep 17 00:00:00 2001 From: djfm Date: Mon, 14 Oct 2013 09:30:45 +0000 Subject: [PATCH 016/247] [*] LO : Fixed a few bugs with currency formats in Back-Office orders --- admin-dev/themes/default/template/controllers/orders/form.tpl | 4 ++-- controllers/admin/AdminCartsController.php | 2 ++ js/tools.js | 2 +- themes/default/js/tools.js | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/orders/form.tpl b/admin-dev/themes/default/template/controllers/orders/form.tpl index 34a5d7cec..6e4597092 100755 --- a/admin-dev/themes/default/template/controllers/orders/form.tpl +++ b/admin-dev/themes/default/template/controllers/orders/form.tpl @@ -656,11 +656,11 @@ var id_product = Number(this.id_product); var id_product_attribute = Number(this.id_product_attribute); cart_quantity[Number(this.id_product)+'_'+Number(this.id_product_attribute)+'_'+Number(this.id_customization)] = this.cart_quantity; - cart_content += ''+this.name+'
    '+this.attributes_small+''+this.reference+''; + cart_content += ''+this.name+'
    '+this.attributes_small+''+this.reference+''; cart_content += (!this.id_customization ? '

    ' : ''); cart_content += (!this.id_customization ? '
    ' : ''); cart_content += (!this.id_customization ? '
    ' : ''); - cart_content += '' + formatCurrency(parseFloat(this.total.replace(',', '.')), currency_format, currency_sign, currency_blank) + ''; + cart_content += '' + formatCurrency(this.numeric_total, currency_format, currency_sign, currency_blank) + ''; if (this.id_customization && this.id_customization != 0) { diff --git a/controllers/admin/AdminCartsController.php b/controllers/admin/AdminCartsController.php index 309c37e40..517934d9a 100755 --- a/controllers/admin/AdminCartsController.php +++ b/controllers/admin/AdminCartsController.php @@ -551,6 +551,8 @@ class AdminCartsControllerCore extends AdminController if (count($summary['products'])) foreach ($summary['products'] as &$product) { + $product['numeric_price'] = $product['price']; + $product['numeric_total'] = $product['total']; $product['price'] = str_replace($currency->sign, '', Tools::displayPrice($product['price'], $currency)); $product['total'] = str_replace($currency->sign, '', Tools::displayPrice($product['total'], $currency)); $product['image_link'] = $this->context->link->getImageLink($product['link_rewrite'], $product['id_image'], 'small_default'); diff --git a/js/tools.js b/js/tools.js index 4da024b8c..276eaf27c 100644 --- a/js/tools.js +++ b/js/tools.js @@ -73,7 +73,7 @@ function formatCurrency(price, currencyFormat, currencySign, currencyBlank) if (currencyFormat == 4) return (formatNumber(price, priceDisplayPrecision, ',', '.') + blank + currencySign); if (currencyFormat == 5) - return (formatNumber(price, priceDisplayPrecision, ' ', '.') + blank + currencySign); + return (currencySign + blank + formatNumber(price, priceDisplayPrecision, '\'', '.')); return price; } diff --git a/themes/default/js/tools.js b/themes/default/js/tools.js index 4215f7a88..7b670168c 100644 --- a/themes/default/js/tools.js +++ b/themes/default/js/tools.js @@ -95,7 +95,7 @@ function formatCurrency(price, currencyFormat, currencySign, currencyBlank) if (currencyFormat == 4) return (formatNumber(price, priceDisplayPrecision, ',', '.') + blank + currencySign); if (currencyFormat == 5) - return (formatNumber(price, priceDisplayPrecision, ' ', '.') + blank + currencySign); + return (currencySign + blank + formatNumber(price, priceDisplayPrecision, '\'', '.')); return price; } From 1358c696cdf34b5ff38f1f7c676a38c1f5b44eb8 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 11:37:15 +0200 Subject: [PATCH 017/247] [-] BO : Fix #PSCFV-10678 warning in chrome --- .../controllers/orders/_print_pdf_icon.tpl | 4 +-- .../controllers/orders/helpers/view/view.tpl | 28 +++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/orders/_print_pdf_icon.tpl b/admin-dev/themes/default/template/controllers/orders/_print_pdf_icon.tpl index f88070aa3..d2cba5c83 100644 --- a/admin-dev/themes/default/template/controllers/orders/_print_pdf_icon.tpl +++ b/admin-dev/themes/default/template/controllers/orders/_print_pdf_icon.tpl @@ -26,7 +26,7 @@ {* Generate HTML code for printing Invoice Icon with link *} {if ($order_state->invoice || $order->invoice_number)} - invoice + invoice {else} - {/if} @@ -35,7 +35,7 @@ {* Generate HTML code for printing Delivery Icon with link *} {if ($order_state->delivery || $order->delivery_number)} - delivery + delivery {else} - {/if} diff --git a/admin-dev/themes/default/template/controllers/orders/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/orders/helpers/view/view.tpl index af01d0657..2809e5043 100755 --- a/admin-dev/themes/default/template/controllers/orders/helpers/view/view.tpl +++ b/admin-dev/themes/default/template/controllers/orders/helpers/view/view.tpl @@ -65,7 +65,7 @@
    {if (count($invoices_collection))} - + {l s='View invoice'} {l s='View invoice'} {else} @@ -73,7 +73,7 @@ {/if} | {if (($currentState && $currentState->delivery) || $order->delivery_number)} - + {l s='View delivery slip'} {l s='View delivery slip'} {else} @@ -124,10 +124,10 @@ - - - - + + + + {foreach from=$history item=row key=key} {if ($key == 0)} @@ -299,12 +299,12 @@
    - - - - - - + + + + + + @@ -787,8 +787,6 @@ {/if} - -
     


    {l s='Back to list'}
    -{/block} +{/block} \ No newline at end of file From 2a54296b962a22edd171c090749dfcb4c62d007d Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 12:11:47 +0200 Subject: [PATCH 018/247] [-] BO : Fix bug #PSCFV-10692, AdminImport bad utf8 cars for subst --- controllers/admin/AdminImportController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 58fa8f527..0bf22ae51 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -455,8 +455,8 @@ class AdminImportControllerCore extends AdminController } - $this->separator = substr(strval(trim(Tools::getValue('separator', ';'))), 0, 1); - $this->multiple_value_separator = substr(strval(trim(Tools::getValue('multiple_value_separator', ','))), 0, 1); + $this->separator = Tools::substr(strval(trim(Tools::getValue('separator', ';'))), 0, 1); + $this->multiple_value_separator = Tools::substr(strval(trim(Tools::getValue('multiple_value_separator', ','))), 0, 1); parent::__construct(); } @@ -632,7 +632,7 @@ class AdminImportControllerCore extends AdminController $html .= ''; foreach ($line as $nb_c => $column) if ((MAX_COLUMNS * (int)$current_table <= $nb_c) && ((int)$nb_c < MAX_COLUMNS * ((int)$current_table + 1))) - $html .= ''; + $html .= ''; $html .= ''; } $html .= '
    '.htmlentities(substr($column, 0, 200), ENT_QUOTES, 'UTF-8').''.htmlentities(Tools::substr($column, 0, 200), ENT_QUOTES, 'UTF-8').'
    '; @@ -2111,7 +2111,7 @@ class AdminImportControllerCore extends AdminController $country->active = 1; $country->name = AdminImportController::createMultiLangField($address->country); $country->id_zone = 0; // Default zone for country to create - $country->iso_code = strtoupper(substr($address->country, 0, 2)); // Default iso for country to create + $country->iso_code = Tools::strtoupper(Tools::substr($address->country, 0, 2)); // Default iso for country to create $country->contains_states = 0; // Default value for country to create $lang_field_error = $country->validateFieldsLang(UNFRIENDLY_ERROR, true); if (($field_error = $country->validateFields(UNFRIENDLY_ERROR, true)) === true && @@ -2142,7 +2142,7 @@ class AdminImportControllerCore extends AdminController $state->name = $address->state; $state->id_country = isset($country->id) ? (int)$country->id : 0; $state->id_zone = 0; // Default zone for state to create - $state->iso_code = strtoupper(substr($address->state, 0, 2)); // Default iso for state to create + $state->iso_code = Tools::strtoupper(Tools::substr($address->state, 0, 2)); // Default iso for state to create $state->tax_behavior = 0; if (($field_error = $state->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $state->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $state->add()) From f8edca8ac8e6c470eaf0f5270ace0577bae5819d Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 13:59:19 +0200 Subject: [PATCH 019/247] [-] IN : Fix bug #PSCFV-10539 duplicate "address" url rewrite in meta.xml for Russian --- install-dev/langs/ru/data/meta.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-dev/langs/ru/data/meta.xml b/install-dev/langs/ru/data/meta.xml index f53ef2f4a..7c86b7653 100755 --- a/install-dev/langs/ru/data/meta.xml +++ b/install-dev/langs/ru/data/meta.xml @@ -70,7 +70,7 @@ ĐдреŃа - address + addresses ĐŃтентификация From c6e3e28894063d4fafb4e8366a135fd1ba01e155 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 14:20:11 +0200 Subject: [PATCH 020/247] [-] FO : Fix bug #PSCFV-10690 could not index a category beacause of robot.txt --- controllers/admin/AdminMetaController.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/controllers/admin/AdminMetaController.php b/controllers/admin/AdminMetaController.php index 9fad901c9..44cdf9ddd 100644 --- a/controllers/admin/AdminMetaController.php +++ b/controllers/admin/AdminMetaController.php @@ -393,7 +393,7 @@ class AdminMetaControllerCore extends AdminController { fwrite($write_fd, "# Private pages\n"); foreach ($this->rb_data['GB'] as $gb) - fwrite($write_fd, 'Disallow: /*'.$gb."\n"); + fwrite($write_fd, 'Disallow: */'.$gb."\n"); } // Directories @@ -401,7 +401,7 @@ class AdminMetaControllerCore extends AdminController { fwrite($write_fd, "# Directories\n"); foreach ($this->rb_data['Directories'] as $dir) - fwrite($write_fd, 'Disallow: /*'.$dir."\n"); + fwrite($write_fd, 'Disallow: */'.$dir."\n"); } // Files @@ -410,7 +410,7 @@ class AdminMetaControllerCore extends AdminController fwrite($write_fd, "# Files\n"); foreach ($this->rb_data['Files'] as $iso_code => $files) foreach ($files as $file) - fwrite($write_fd, 'Disallow: /*'.$iso_code.'/'.$file."\n"); + fwrite($write_fd, 'Disallow: */'.$iso_code.'/'.$file."\n"); } // Sitemap From 50002ec71431157507af902623e2680db1a47f80 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 14:23:26 +0200 Subject: [PATCH 021/247] [-] FO : Fix #PSCFV-10690 again, change just on directories --- controllers/admin/AdminMetaController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminMetaController.php b/controllers/admin/AdminMetaController.php index 44cdf9ddd..0d0bb10be 100644 --- a/controllers/admin/AdminMetaController.php +++ b/controllers/admin/AdminMetaController.php @@ -393,7 +393,7 @@ class AdminMetaControllerCore extends AdminController { fwrite($write_fd, "# Private pages\n"); foreach ($this->rb_data['GB'] as $gb) - fwrite($write_fd, 'Disallow: */'.$gb."\n"); + fwrite($write_fd, 'Disallow: /*'.$gb."\n"); } // Directories @@ -410,7 +410,7 @@ class AdminMetaControllerCore extends AdminController fwrite($write_fd, "# Files\n"); foreach ($this->rb_data['Files'] as $iso_code => $files) foreach ($files as $file) - fwrite($write_fd, 'Disallow: */'.$iso_code.'/'.$file."\n"); + fwrite($write_fd, 'Disallow: /*'.$iso_code.'/'.$file."\n"); } // Sitemap From 80f6f4e223c0596b5604b43ff09b594bd9eb236f Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 15:34:47 +0200 Subject: [PATCH 022/247] [-] FO : Fix bug #PSCFV-10688, bad priceDisplay in order-carrier --- themes/default/order-carrier.tpl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/themes/default/order-carrier.tpl b/themes/default/order-carrier.tpl index aac6efad1..9a8f40adc 100644 --- a/themes/default/order-carrier.tpl +++ b/themes/default/order-carrier.tpl @@ -171,10 +171,13 @@
    {if $option.total_price_with_tax && (!isset($free_shipping) || (isset($free_shipping) && !$free_shipping))} + {if $use_taxes == 1} - {convertPrice price=$option.total_price_with_tax} {l s='(tax incl.)'} - {else} - {convertPrice price=$option.total_price_without_tax} {l s='(tax excl.)'} + {if $priceDisplay == 1} + {convertPrice price=$option.total_price_without_tax} {l s='(tax excl.)'} + {else} + {convertPrice price=$option.total_price_with_tax} {l s='(tax incl.)'} + {/if} {/if} {else} {l s='Free'} From cc8ec4fd4583d6439a47292e43f45ed451aa141b Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 14 Oct 2013 16:03:50 +0200 Subject: [PATCH 023/247] [-] CORE : Fix bug #PSCFV-10687 bad conversion for accentuated Y and W, thanks @mike15 --- classes/Tools.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Tools.php b/classes/Tools.php index 4a750e577..849877423 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -1162,7 +1162,7 @@ class ToolsCore $replacements = array( 'a', 'c', 'd', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'n', 'o', 'r', 's', 'ss', 't', 'u', 'y', 'w', 'z', 'ae', 'oe', - 'A', 'C', 'D', 'E', 'G', 'H', 'I', 'J', 'K', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'Z', 'AE', 'OE' + 'A', 'C', 'D', 'E', 'G', 'H', 'I', 'J', 'K', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'W', 'Y', 'Z', 'AE', 'OE' ); return preg_replace($patterns, $replacements, $str); From 6f4b85430cb77ca53ae6145007de9f5d9431c426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Mon, 14 Oct 2013 18:52:48 +0200 Subject: [PATCH 024/247] // Fix listings and sort --- classes/controller/AdminController.php | 2 +- classes/helper/HelperList.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index d202ccada..8ec50408e 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -2284,7 +2284,7 @@ class AdminControllerCore extends Controller (isset($this->_filter) ? $this->_filter : '').$where_shop.' '.(isset($this->_group) ? $this->_group.' ' : '').' '.$having_clause.' - ORDER BY '.(($order_by == $this->identifier || $order_by == 'quantity') ? 'a.' : '').pSQL($order_by).' '.pSQL($order_way). + ORDER BY '.(($order_by == $this->identifier) ? 'a.' : '').pSQL($order_by).' '.pSQL($order_way). ($this->_tmpTableFilter ? ') tmpTable WHERE 1'.$this->_tmpTableFilter : ''). (($use_limit === true) ? ' LIMIT '.(int)$start.','.(int)$limit : ''); diff --git a/classes/helper/HelperList.php b/classes/helper/HelperList.php index 8f2ed09f0..001e24a65 100644 --- a/classes/helper/HelperList.php +++ b/classes/helper/HelperList.php @@ -513,7 +513,7 @@ class HelperListCore extends Helper if (Tools::getIsset($this->table.'Orderby')) $order = '&'.$this->table.'Orderby='.urlencode($this->orderBy).'&'.$this->table.'Orderway='.urlencode(strtolower($this->orderWay)); - $action = $this->currentIndex.$identifier.'&token='.$token.$order.'#'.$this->table; + $action = $this->currentIndex.$identifier.'&token='.$token.'#'.$this->table; /* Determine current page number */ $page = (int)Tools::getValue('submitFilter'.$this->list_id); From f25a41878503bd00ae50cb230da1d500b755e82f Mon Sep 17 00:00:00 2001 From: indesign47 Date: Mon, 14 Oct 2013 19:20:38 +0200 Subject: [PATCH 025/247] Update Alias.php --- classes/Alias.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Alias.php b/classes/Alias.php index 932495206..386aa741d 100644 --- a/classes/Alias.php +++ b/classes/Alias.php @@ -127,7 +127,7 @@ class AliasCore extends ObjectModel /** * This method is allow to know if a alias exist for AdminImportController - * @since 1.5.7 + * @since 1.5.6.0 * @return bool */ public static function aliasExists($id_alias) From fd2dc4ff64551dae6c78daecca5f4c8f1f550209 Mon Sep 17 00:00:00 2001 From: Francois Gaillard Date: Tue, 15 Oct 2013 09:14:49 +0200 Subject: [PATCH 026/247] [-] Classes : Modules listing and case insensitive --- classes/module/Module.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/classes/module/Module.php b/classes/module/Module.php index 9ddea6f73..e190ff30a 100644 --- a/classes/module/Module.php +++ b/classes/module/Module.php @@ -1234,11 +1234,7 @@ abstract class ModuleCore $module->interest = 0; } - usort($module_list, create_function('$a,$b', ' - if ($a->displayName == $b->displayName) - return 0; - return ($a->displayName < $b->displayName) ? -1 : 1; - ')); + usort($module_list, create_function('$a,$b', 'return strnatcasecmp($a->displayName, $b->displayName);')); if ($errors) { From 9c861642a5dcd0719a58c01b7b88694b5c9fa6fd Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 15 Oct 2013 10:09:16 +0200 Subject: [PATCH 027/247] [-] BO : AdminImport, wrong default separators --- controllers/admin/AdminImportController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 0c315bad0..249f64276 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -472,8 +472,8 @@ class AdminImportControllerCore extends AdminController } - $this->separator = Tools::substr(strval(trim(Tools::getValue('separator', ';'))), 0, 1); - $this->multiple_value_separator = Tools::substr(strval(trim(Tools::getValue('multiple_value_separator', ','))), 0, 1); + $this->separator = Tools::substr(strval(trim(Tools::getValue('separator', ','))), 0, 1); + $this->multiple_value_separator = Tools::substr(strval(trim(Tools::getValue('multiple_value_separator', ';'))), 0, 1); parent::__construct(); } From 837ca34e7e2b7076dfc751fa079fa9e2441bc5a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 15 Oct 2013 10:30:48 +0200 Subject: [PATCH 028/247] [-] Core: Product::getPriceStatic called with 1 quantity return the specific price for 1 qty if called with id_cart = 0 --- classes/SpecificPrice.php | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/classes/SpecificPrice.php b/classes/SpecificPrice.php index 11e67f1f5..0db0c487e 100644 --- a/classes/SpecificPrice.php +++ b/classes/SpecificPrice.php @@ -94,7 +94,7 @@ class SpecificPriceCore extends ObjectModel if (parent::add($autodate, $nullValues)) { // Flush cache when we adding a new specific price - self::$_specificPriceCache = array(); + SpecificPrice::$_specificPriceCache = array(); Product::flushPriceCache(); // Set cache of feature detachable to true Configuration::updateGlobalValue('PS_SPECIFIC_PRICE_FEATURE_ACTIVE', '1'); @@ -108,7 +108,7 @@ class SpecificPriceCore extends ObjectModel if (parent::update($null_values)) { // Flush cache when we updating a new specific price - self::$_specificPriceCache = array(); + SpecificPrice::$_specificPriceCache = array(); Product::flushPriceCache(); return true; } @@ -120,7 +120,7 @@ class SpecificPriceCore extends ObjectModel if (parent::delete()) { // Flush cache when we deletind a new specific price - self::$_specificPriceCache = array(); + SpecificPrice::$_specificPriceCache = array(); Product::flushPriceCache(); // Refresh cache of feature detachable Configuration::updateGlobalValue('PS_SPECIFIC_PRICE_FEATURE_ACTIVE', SpecificPrice::isCurrentlyUsed($this->def['table'])); @@ -180,9 +180,9 @@ class SpecificPriceCore extends ObjectModel if (!SpecificPrice::isFeatureActive()) return explode(';', Configuration::get('PS_SPECIFIC_PRICE_PRIORITIES')); - if (!isset(self::$_cache_priorities[(int)$id_product])) + if (!isset(SpecificPrice::$_cache_priorities[(int)$id_product])) { - self::$_cache_priorities[(int)$id_product] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' + SpecificPrice::$_cache_priorities[(int)$id_product] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' SELECT `priority`, `id_specific_price_priority` FROM `'._DB_PREFIX_.'specific_price_priority` WHERE `id_product` = '.(int)$id_product.' @@ -190,7 +190,7 @@ class SpecificPriceCore extends ObjectModel '); } - $priority = self::$_cache_priorities[(int)$id_product]; + $priority = SpecificPrice::$_cache_priorities[(int)$id_product]; if (!$priority) $priority = Configuration::get('PS_SPECIFIC_PRICE_PRIORITIES'); @@ -209,11 +209,11 @@ class SpecificPriceCore extends ObjectModel */ $key = ((int)$id_product.'-'.(int)$id_shop.'-'.(int)$id_currency.'-'.(int)$id_country.'-'.(int)$id_group.'-'.(int)$quantity.'-'.(int)$id_product_attribute.'-'.(int)$id_cart.'-'.(int)$id_customer.'-'.(int)$real_quantity); - if (!array_key_exists($key, self::$_specificPriceCache)) + if (!array_key_exists($key, SpecificPrice::$_specificPriceCache)) { $now = date('Y-m-d H:i:s'); - self::$_specificPriceCache[$key] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' - SELECT *, '.SpecificPrice::_getScoreQuery($id_product, $id_shop, $id_currency, $id_country, $id_group, $id_customer).' + $query = ' + SELECT *, '.SpecificPrice::_getScoreQuery($id_product, $id_shop, $id_currency, $id_country, $id_group, $id_customer).' FROM `'._DB_PREFIX_.'specific_price` WHERE `id_product` IN (0, '.(int)$id_product.') AND `id_product_attribute` IN (0, '.(int)$id_product_attribute.') @@ -228,11 +228,22 @@ class SpecificPriceCore extends ObjectModel AND (`to` = \'0000-00-00 00:00:00\' OR \''.$now.'\' <= `to`) ) - AND id_cart IN (0, '.(int)$id_cart.')'. - (($real_quantity != 0 && !Configuration::get('PS_QTY_DISCOUNT_ON_COMBINATION')) ? ' AND IF(`from_quantity` > 1, `from_quantity`, 0) <= IF(id_product_attribute=0,'.(int)$quantity.' ,'.(int)$real_quantity.')' : 'AND `from_quantity` <= '.max(1, (int)$real_quantity)).' - ORDER BY `id_product_attribute` DESC, `from_quantity` DESC, `id_specific_price_rule` ASC, `score` DESC'); + AND id_cart IN (0, '.(int)$id_cart.') '; + + if ($real_quantity != 0 && !Configuration::get('PS_QTY_DISCOUNT_ON_COMBINATION')) + $query .= ' AND IF(`from_quantity` > 1, `from_quantity`, 0) <= IF(id_product_attribute=0,'.(int)$quantity.' ,'.(int)$real_quantity.')'; + else + { + $qty_to_use = $id_cart ? (int)$quantity : (int)$real_quantity; + $query .= 'AND `from_quantity` <= '.max(1, $qty_to_use); + } + + $query .= ' ORDER BY `id_product_attribute` DESC, `from_quantity` DESC, `id_specific_price_rule` ASC, `score` DESC'; + + SpecificPrice::$_specificPriceCache[$key] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($query); + } - return self::$_specificPriceCache[$key]; + return SpecificPrice::$_specificPriceCache[$key]; } public static function setPriorities($priorities) From 81497be5ab1e7408c8c56713d16abdafb7df6b7e Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 15 Oct 2013 14:53:44 +0200 Subject: [PATCH 029/247] [-] Fo : Fix bug #PSCFV-10640, redirect loop when country address is not among active countries in OPC --- controllers/front/ParentOrderController.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/controllers/front/ParentOrderController.php b/controllers/front/ParentOrderController.php index 15d8e4289..097aa2f7d 100644 --- a/controllers/front/ParentOrderController.php +++ b/controllers/front/ParentOrderController.php @@ -464,8 +464,17 @@ class ParentOrderControllerCore extends FrontController { $address = new Address($this->context->cart->id_address_delivery); $id_zone = Address::getZoneById($address->id); - if (!Address::isCountryActiveById((int)($this->context->cart->id_address_delivery)) || !Address::isCountryActiveById((int)($this->context->cart->id_address_invoice))) - Tools::redirect('index.php?controller=order&step=1'); + $bad_delivery = false; + if ($bad_delivery = !Address::isCountryActiveById((int)$this->context->cart->id_address_delivery) || !Address::isCountryActiveById((int)$this->context->cart->id_address_invoice)) + { + if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1 && Dispatcher::getInstance()->getController() != 'order-opc') + { + $back_url = $this->context->link->getPageLink('order', true, (int)$this->context->language->id, array('step' => Tools::getValue('step'), 'multi-shipping' => (int)Tools::getValue('multi-shipping'))); + $params = array('multi-shipping' => (int)Tools::getValue('multi-shipping'), 'id_address' => ($bad_delivery ? (int)$this->context->cart->id_address_delivery : (int)$this->context->cart->id_address_invoice), 'back' => $back_url); + Tools::redirect($this->context->link->getPageLink('address', true, (int)$this->context->language->id, $params)); + } + Tools::redirect('index.php?controller=order&step=1'); + } $carriers = $this->context->cart->simulateCarriersOutput(); $checked = $this->context->cart->simulateCarrierSelectedOutput(); $delivery_option_list = $this->context->cart->getDeliveryOptionList(); From 7ae9832992fec88f80b30f18b6c4b7ffbdb4b1e2 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 15 Oct 2013 14:56:25 +0200 Subject: [PATCH 030/247] // small cast --- controllers/front/ParentOrderController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/front/ParentOrderController.php b/controllers/front/ParentOrderController.php index 097aa2f7d..f3cf226d0 100644 --- a/controllers/front/ParentOrderController.php +++ b/controllers/front/ParentOrderController.php @@ -465,7 +465,7 @@ class ParentOrderControllerCore extends FrontController $address = new Address($this->context->cart->id_address_delivery); $id_zone = Address::getZoneById($address->id); $bad_delivery = false; - if ($bad_delivery = !Address::isCountryActiveById((int)$this->context->cart->id_address_delivery) || !Address::isCountryActiveById((int)$this->context->cart->id_address_invoice)) + if ($bad_delivery = (bool)!Address::isCountryActiveById((int)$this->context->cart->id_address_delivery) || !Address::isCountryActiveById((int)$this->context->cart->id_address_invoice)) { if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1 && Dispatcher::getInstance()->getController() != 'order-opc') { From 237b950eb6c8e054108ba437d668be3576828dd7 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 15 Oct 2013 16:35:58 +0200 Subject: [PATCH 031/247] [-] FO : #PSCFV-10640 again, bad assignement --- controllers/front/ParentOrderController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/front/ParentOrderController.php b/controllers/front/ParentOrderController.php index f3cf226d0..3262669cc 100644 --- a/controllers/front/ParentOrderController.php +++ b/controllers/front/ParentOrderController.php @@ -465,7 +465,7 @@ class ParentOrderControllerCore extends FrontController $address = new Address($this->context->cart->id_address_delivery); $id_zone = Address::getZoneById($address->id); $bad_delivery = false; - if ($bad_delivery = (bool)!Address::isCountryActiveById((int)$this->context->cart->id_address_delivery) || !Address::isCountryActiveById((int)$this->context->cart->id_address_invoice)) + if (($bad_delivery = (bool)!Address::isCountryActiveById((int)$this->context->cart->id_address_delivery)) || (!Address::isCountryActiveById((int)$this->context->cart->id_address_invoice))) { if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1 && Dispatcher::getInstance()->getController() != 'order-opc') { From 6ee538c710f5d1496af7a8b7faafd57d2370e9ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 15 Oct 2013 19:53:59 +0200 Subject: [PATCH 032/247] // fix on ps_cleaner --- modules/pscleaner/pscleaner.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/pscleaner/pscleaner.php b/modules/pscleaner/pscleaner.php index 7f92c7be9..99915bcd2 100644 --- a/modules/pscleaner/pscleaner.php +++ b/modules/pscleaner/pscleaner.php @@ -151,7 +151,7 @@ class PSCleaner extends Module // Remove inexisting or monolanguage configuration value from configuration_lang $query = 'DELETE FROM `'._DB_PREFIX_.'configuration_lang` WHERE `id_configuration` NOT IN (SELECT `id_configuration` FROM `'._DB_PREFIX_.'configuration`) - OR `id_configuration` IN (SELECT `id_configuration` FROM `'._DB_PREFIX_.'configuration` WHERE name IS NOT NULL AND name != "")'; + OR `id_configuration` IN (SELECT `id_configuration` FROM `'._DB_PREFIX_.'configuration` WHERE name IS NULL OR name = "")'; if ($db->Execute($query)) if ($affected_rows = $db->Affected_Rows()) $logs[$query] = $affected_rows; @@ -300,8 +300,6 @@ class PSCleaner extends Module array('stock', 'id_warehouse', 'warehouse', 'id_warehouse'), array('stock', 'id_product', 'product', 'id_product'), array('stock_available', 'id_product', 'product', 'id_product'), - array('stock_available', 'id_shop', 'shop', 'id_shop'), - array('stock_available', 'id_shop_group', 'shop_group', 'id_shop_group'), array('stock_mvt', 'id_stock', 'stock', 'id_stock'), array('tab_module_preference', 'id_employee', 'employee', 'id_employee'), array('tab_module_preference', 'id_tab', 'tab', 'id_tab'), @@ -367,7 +365,13 @@ class PSCleaner extends Module if ($affected_rows = $db->Affected_Rows()) $logs[$query] = $affected_rows; } - + + // stock_available + $query = 'DELETE FROM `'._DB_PREFIX_.'stock_available` WHERE `id_shop` NOT IN (SELECT `id_shop` FROM `'._DB_PREFIX_.'shop`) AND `id_shop_group` NOT IN (SELECT `id_shop_group` FROM `'._DB_PREFIX_.'shop_group`)'; + if ($db->Execute($query)) + if ($affected_rows = $db->Affected_Rows()) + $logs[$query] = $affected_rows; + Category::regenerateEntireNtree(); // @Todo: Remove attachment files, images... From ad27dbe8d16614fd8864d325d27d3faf841bec2e Mon Sep 17 00:00:00 2001 From: MustangZhong Date: Wed, 16 Oct 2013 10:14:14 +0800 Subject: [PATCH 033/247] Update Cart.php The field "id_address_delivery" is missing in getWsCartRows. Since id_address_delivery is required in the web service field definition. --- classes/Cart.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Cart.php b/classes/Cart.php index d363905dd..f38015171 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -3219,7 +3219,7 @@ class CartCore extends ObjectModel public function getWsCartRows() { return Db::getInstance()->executeS(' - SELECT id_product, id_product_attribute, quantity + SELECT id_product, id_product_attribute, quantity, id_address_delivery FROM `'._DB_PREFIX_.'cart_product` WHERE id_cart = '.(int)$this->id.' AND id_shop = '.(int)Context::getContext()->shop->id ); From 3ba590504274a5efdb4930c1f9cb275faebe070e Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 16 Oct 2013 16:25:40 +0200 Subject: [PATCH 034/247] [-] BO : Could not order by reserved words like 'key' --- classes/controller/AdminController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 8ec50408e..aa184d885 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -2284,7 +2284,7 @@ class AdminControllerCore extends Controller (isset($this->_filter) ? $this->_filter : '').$where_shop.' '.(isset($this->_group) ? $this->_group.' ' : '').' '.$having_clause.' - ORDER BY '.(($order_by == $this->identifier) ? 'a.' : '').pSQL($order_by).' '.pSQL($order_way). + ORDER BY '.(($order_by == $this->identifier) ? 'a.' : '').'`'.pSQL($order_by).'` '.pSQL($order_way). ($this->_tmpTableFilter ? ') tmpTable WHERE 1'.$this->_tmpTableFilter : ''). (($use_limit === true) ? ' LIMIT '.(int)$start.','.(int)$limit : ''); From e4faa2bb7512f545a9549e6c887b292525f084dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 17 Oct 2013 10:28:14 +0200 Subject: [PATCH 035/247] [-] Core: Out of stock status should be setted after the first order history --- classes/PaymentModule.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/classes/PaymentModule.php b/classes/PaymentModule.php index 9d638ecd3..69520408e 100644 --- a/classes/PaymentModule.php +++ b/classes/PaymentModule.php @@ -536,6 +536,13 @@ abstract class PaymentModuleCore extends Module if ($order_status->logable) ProductSale::addProductSale((int)$product['id_product'], (int)$product['cart_quantity']); + // Set the order state + $new_history = new OrderHistory(); + $new_history->id_order = (int)$order->id; + $new_history->changeIdOrderState((int)$id_order_state, $order, true); + $new_history->addWithemail(true, $extra_vars); + + // Switch to back order if needed if (Configuration::get('PS_STOCK_MANAGEMENT') && $order_detail->getStockState()) { $history = new OrderHistory(); @@ -544,13 +551,6 @@ abstract class PaymentModuleCore extends Module $history->addWithemail(); } - // Set order state in order history ONLY even if the "out of stock" status has not been yet reached - // So you migth have two order states - $new_history = new OrderHistory(); - $new_history->id_order = (int)$order->id; - $new_history->changeIdOrderState((int)$id_order_state, $order, true); - $new_history->addWithemail(true, $extra_vars); - unset($order_detail); // Order is reloaded because the status just changed From f1ea9ba5b44bd47467a1b944dc0b52a1ed8d5c90 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 17 Oct 2013 10:53:20 +0200 Subject: [PATCH 036/247] [-] BO : Fix bug #PSCFV-10709 rename root category with slashes in it --- .../template/helpers/form/form_category.tpl | 8 ++++---- classes/helper/Helper.php | 14 ++++++-------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/admin-dev/themes/default/template/helpers/form/form_category.tpl b/admin-dev/themes/default/template/helpers/form/form_category.tpl index 55452b132..d7c255ccf 100644 --- a/admin-dev/themes/default/template/helpers/form/form_category.tpl +++ b/admin-dev/themes/default/template/helpers/form/form_category.tpl @@ -24,11 +24,11 @@ *} {if count($categories) && isset($categories)} @@ -90,6 +101,10 @@ $(document).ready(function() { submitFunction(); return false; }); + $('#invoice_address').click(function() { + bindCheckbox(); + }); + bindCheckbox(); }); function submitFunction() { @@ -140,6 +155,24 @@ $(document).ready(function() { } }); } + function bindCheckbox() + { + if ($('#invoice_address:checked').length > 0) + { + $('#opc_invoice_address').slideDown('slow'); + if ($('#company_invoice').val() == '') + $('#vat_number_block_invoice').hide(); + updateState('invoice'); + updateNeedIDNumber('invoice'); + updateZipCode('invoice'); +{/literal} + $('.id_state option[value={if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{/if}]').prop('selected', true); + $('.id_state_invoice option[value={if isset($smarty.post.id_state_invoice)}{$smarty.post.id_state_invoice|intval}{/if}]').prop('selected', true); +{literal} + } + else + $('#opc_invoice_address').slideUp('slow'); + } {/literal} - {elseif $field_name eq "Country:name" || $field_name eq "country"} + {elseif $field_name eq "Country:name" || $field_name eq "country"}

    - {elseif $field_name eq "State:name"} + {elseif $field_name eq "State:name"} {assign var='stateExist' value=true}

    @@ -319,11 +357,6 @@ $(document).ready(function() {

    - {elseif $field_name eq "phone"} -

    - - -

    {/if} {/foreach} {if $stateExist eq false} @@ -340,19 +373,106 @@ $(document).ready(function() {

    {/if} +

    + + +

    - +

    + + +

    +
    - {$HOOK_CREATE_ACCOUNT_FORM}

    *{l s='Required field'} @@ -532,7 +652,7 @@ $(document).ready(function() {

    @@ -565,13 +685,13 @@ $(document).ready(function() {

    {if isset($one_phone_at_least) && $one_phone_at_least} -

    {l s='You must register at least one phone number.'}

    - {/if} +

    {l s='You must register at least one phone number.'}

    + {/if}

    -

    +

    diff --git a/themes/default/js/order-opc.js b/themes/default/js/order-opc.js index 6480375fb..cbfb44f9c 100644 --- a/themes/default/js/order-opc.js +++ b/themes/default/js/order-opc.js @@ -308,7 +308,7 @@ function saveAddress(type) params += 'address2='+encodeURIComponent($('#address2'+(type == 'invoice' ? '_invoice' : '')).val())+'&'; params += 'postcode='+encodeURIComponent($('#postcode'+(type == 'invoice' ? '_invoice' : '')).val())+'&'; params += 'city='+encodeURIComponent($('#city'+(type == 'invoice' ? '_invoice' : '')).val())+'&'; - params += 'id_country='+encodeURIComponent($('#id_country').val())+'&'; + params += 'id_country='+encodeURIComponent($('#id_country'+(type == 'invoice' ? '_invoice' : '')).val())+'&'; if ($('#id_state'+(type == 'invoice' ? '_invoice' : '')).val()) params += 'id_state='+encodeURIComponent($('#id_state'+(type == 'invoice' ? '_invoice' : '')).val())+'&'; params += 'other='+encodeURIComponent($('#other'+(type == 'invoice' ? '_invoice' : '')).val())+'&'; diff --git a/themes/default/order-opc-new-account.tpl b/themes/default/order-opc-new-account.tpl index 676ee7b11..c96437cc3 100644 --- a/themes/default/order-opc-new-account.tpl +++ b/themes/default/order-opc-new-account.tpl @@ -86,7 +86,6 @@ else $('#vat_number_block_invoice').hide(); } - $(document).ready(function() { $('#company').on('input',function(){ vat_number(); @@ -96,6 +95,10 @@ }); vat_number(); vat_number_invoice(); + {/literal} + $('.id_state option[value={if isset($guestInformations.id_state)}{$guestInformations.id_state|intval}{/if}]').prop('selected', true); + $('.id_state_invoice option[value={if isset($guestInformations.id_state_invoice)}{$guestInformations.id_state_invoice|intval}{/if}]').prop('selected', true); + {literal} }); {/literal} @@ -279,7 +282,7 @@

    - +

    @@ -289,7 +292,7 @@

    {l s='Invoice address'}

    {foreach from=$inv_all_fields item=field_name} {if $field_name eq "company" && $b2b_enable} -

    +

    @@ -375,13 +378,13 @@

    {if isset($one_phone_at_least) && $one_phone_at_least} -

    {l s='You must register at least one phone number.'}

    +

    {l s='You must register at least one phone number.'}

    {/if} -

    +

    -

    +

    From c9d20f35b30d4c5859ab7eef9cb6d62adb785d76 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 00:00:17 +0200 Subject: [PATCH 048/247] // norms --- controllers/front/AddressController.php | 6 +++--- themes/default/authentication.tpl | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/controllers/front/AddressController.php b/controllers/front/AddressController.php index dcb34df88..a6dbe02e4 100644 --- a/controllers/front/AddressController.php +++ b/controllers/front/AddressController.php @@ -225,11 +225,11 @@ class AddressControllerCore extends FrontController else // Update cart address $this->context->cart->autosetProductAddress(); - if ((bool)(Tools::getValue('select_address', false)) == true OR (Tools::getValue('type') == 'invoice' && Configuration::get('PS_ORDER_PROCESS_TYPE'))) - $this->context->cart->id_address_invoice = (int)$address->id; + if ((bool)(Tools::getValue('select_address', false)) == true OR (Tools::getValue('type') == 'invoice' && Configuration::get('PS_ORDER_PROCESS_TYPE'))) + $this->context->cart->id_address_invoice = (int)$address->id; elseif (Configuration::get('PS_ORDER_PROCESS_TYPE')) $this->context->cart->id_address_invoice = (int)$this->context->cart->id_address_delivery; - $this->context->cart->update(); + $this->context->cart->update(); if ($this->ajax) { diff --git a/themes/default/authentication.tpl b/themes/default/authentication.tpl index 043854730..de7859286 100644 --- a/themes/default/authentication.tpl +++ b/themes/default/authentication.tpl @@ -303,7 +303,7 @@ $(document).ready(function() { {/if}

    {l s='Delivery address'}

    {foreach from=$dlv_all_fields item=field_name} - {if $field_name eq "company" && $b2b_enable} + {if $field_name eq "company" && $b2b_enable}

    From 332c8ff49f39ac192e87660b80028436f9810c54 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 00:28:41 +0200 Subject: [PATCH 049/247] [-] CORE : Fix bug #PSCFV-10687 again, #PSCFV-10752 replaceAccentedChars() // sorry for that --- classes/Tools.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Tools.php b/classes/Tools.php index 849877423..d10f4929a 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -1162,7 +1162,7 @@ class ToolsCore $replacements = array( 'a', 'c', 'd', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'n', 'o', 'r', 's', 'ss', 't', 'u', 'y', 'w', 'z', 'ae', 'oe', - 'A', 'C', 'D', 'E', 'G', 'H', 'I', 'J', 'K', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'W', 'Y', 'Z', 'AE', 'OE' + 'A', 'C', 'D', 'E', 'G', 'H', 'I', 'J', 'K', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'Y', 'W', 'Z', 'AE', 'OE' ); return preg_replace($patterns, $replacements, $str); From 9b8a7edad82270bfe1abbab39dccc91f5bc8cd86 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 01:05:18 +0200 Subject: [PATCH 050/247] // small refacto --- controllers/front/AuthController.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/controllers/front/AuthController.php b/controllers/front/AuthController.php index 58582cff2..d8852cebc 100644 --- a/controllers/front/AuthController.php +++ b/controllers/front/AuthController.php @@ -327,7 +327,7 @@ class AuthControllerCore extends FrontController if (!$this->ajax) { - if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer(Tools::getValue('back'))) + if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer($back)) Tools::redirect(html_entity_decode($back)); Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account')); } @@ -464,7 +464,7 @@ class AuthControllerCore extends FrontController die(Tools::jsonEncode($return)); } - if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer(Tools::getValue('back'))) + if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer($back)) Tools::redirect(html_entity_decode($back)); // redirection: if cart is not empty : redirection to the cart if (count($this->context->cart->getProducts(true)) > 0) @@ -624,7 +624,7 @@ class AuthControllerCore extends FrontController if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount')) Tools::redirect('index.php?controller=address'); - if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer(Tools::getValue('back'))) + if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer($back)) Tools::redirect(html_entity_decode($back)); // redirection: if cart is not empty : redirection to the cart From 198e75245d83ff11bb29dfdc1095a91a56fd83cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Mon, 21 Oct 2013 09:41:00 +0200 Subject: [PATCH 051/247] [-] FO: Don't auto detect language if it not associated to the shop #PSCFV-10273 --- classes/Tools.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/classes/Tools.php b/classes/Tools.php index d10f4929a..c7a82201d 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -357,13 +357,11 @@ class ToolsCore if (Validate::isLanguageIsoCode($string)) { $lang = new Language(Language::getIdByIso($string)); - if (Validate::isLoadedObject($lang) && $lang->active) - { - $language = new Language((int)$lang->id); - if (Validate::isLoadedObject($language)) - Context::getContext()->language = $language; + if (Validate::isLoadedObject($lang) && $lang->active && $lang->isAssociatedToShop()) + { + Context::getContext()->language = $lang; $cookie->id_lang = (int)$lang->id; - } + } } } From 35df3f463c222f3da103a490fcc47743fa3cc871 Mon Sep 17 00:00:00 2001 From: PhpMadman Date: Mon, 21 Oct 2013 10:10:28 +0200 Subject: [PATCH 052/247] Removed unsed code I looked through the code. And I can't see that that code is used. everything is handled in PDF class. --- controllers/front/PdfInvoiceController.php | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/controllers/front/PdfInvoiceController.php b/controllers/front/PdfInvoiceController.php index b02453342..a4d6b2429 100644 --- a/controllers/front/PdfInvoiceController.php +++ b/controllers/front/PdfInvoiceController.php @@ -63,23 +63,8 @@ class PdfInvoiceControllerCore extends FrontController $order_invoice_list = $this->order->getInvoicesCollection(); Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list)); - $pdf = new PDF($order_invoice_list, PDF::TEMPLATE_INVOICE, $this->context->smarty, $this->context->language->id); + $pdf = new PDF($order_invoice_list, PDF::TEMPLATE_INVOICE, $this->context->smarty); $pdf->render(); } - - /** - * Returns the invoice template associated to the country iso_code - * @param string $iso_user - */ - public function getTemplate($iso_country) - { - $template = _PS_THEME_PDF_DIR_.'/invoice.tpl'; - - $iso_template = _PS_THEME_PDF_DIR_.'/invoice.'.$iso_country.'.tpl'; - if (file_exists($iso_template)) - $template = $iso_template; - - return $template; - } -} \ No newline at end of file +} From 15cd0b9fbc9da577a7a8afc4c103d2df4e5e80db Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 12:21:49 +0200 Subject: [PATCH 053/247] [-] BO : Report of https://github.com/PrestaShop/PrestaShop/commit/fd86a29c5c369ec5da0f91bbe97c584a00d02d0d --- .../default/template/controllers/modules/tab_module_line.tpl | 1 + 1 file changed, 1 insertion(+) diff --git a/admin-dev/themes/default/template/controllers/modules/tab_module_line.tpl b/admin-dev/themes/default/template/controllers/modules/tab_module_line.tpl index 044183bf6..b76532dd0 100644 --- a/admin-dev/themes/default/template/controllers/modules/tab_module_line.tpl +++ b/admin-dev/themes/default/template/controllers/modules/tab_module_line.tpl @@ -34,6 +34,7 @@

    + {$module->name} {$module->displayName|truncate:36:'…'} {$module->version} {if isset($module->id) && $module->id gt 0 } {if $module->active} From 5d8c0a0fc2c07028e7a786078cd829265a025174 Mon Sep 17 00:00:00 2001 From: Samy Rabih Date: Mon, 21 Oct 2013 14:08:30 +0200 Subject: [PATCH 054/247] duplicateFeatures doesn't protect feature values The features values are not protected using pSQL during the features duplication --- classes/Product.php | 1 + 1 file changed, 1 insertion(+) diff --git a/classes/Product.php b/classes/Product.php index 5d7330cff..0d54b9752 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -3590,6 +3590,7 @@ class ProductCore extends ObjectModel if ($result3) { $result3['id_feature_value'] = $new_id_feature_value; + $result3['value'] = pSQL($result3['value']); $return &= Db::getInstance()->insert('feature_value_lang', $result3); } } From d25b41ef976fd7d31ef8ed0aeb8500489d2fc4b2 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 14:34:59 +0200 Subject: [PATCH 055/247] [-] BO : wrong csv files name --- controllers/admin/AdminImportController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 249f64276..1fcc0f353 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -2876,7 +2876,7 @@ class AdminImportControllerCore extends AdminController if (Tools::isSubmit('submitFileUpload')) { - $path = _PS_ADMIN_DIR_.'/import/'.date('Ymdhis').'-'; + $path = _PS_ADMIN_DIR_.'/import/'.date('YmdHis').'-'; if (isset($_FILES['file']) && !empty($_FILES['file']['error'])) { switch ($_FILES['file']['error']) From a9e45fccf3d56e331ebd6514fae471a3c1b9eede Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 14:35:23 +0200 Subject: [PATCH 056/247] [-] MO : ScrollTo not loaded --- modules/crossselling/crossselling.php | 1 + modules/productscategory/productscategory.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/crossselling/crossselling.php b/modules/crossselling/crossselling.php index 31262888d..14620d283 100755 --- a/modules/crossselling/crossselling.php +++ b/modules/crossselling/crossselling.php @@ -117,6 +117,7 @@ class CrossSelling extends Module { $this->context->controller->addCSS(($this->_path).'crossselling.css', 'all'); $this->context->controller->addJS(($this->_path).'js/crossselling.js'); + $this->context->controller->addJqueryPlugin('scrollTo', 'serialScroll'); } /** diff --git a/modules/productscategory/productscategory.php b/modules/productscategory/productscategory.php index fb1f74e36..203838fc8 100644 --- a/modules/productscategory/productscategory.php +++ b/modules/productscategory/productscategory.php @@ -186,7 +186,7 @@ class productsCategory extends Module { $this->context->controller->addCSS($this->_path.'productscategory.css', 'all'); $this->context->controller->addJS($this->_path.'productscategory.js'); - $this->context->controller->addJqueryPlugin('serialScroll'); + $this->context->controller->addJqueryPlugin('scrollTo', 'serialScroll'); } public function hookAddProduct($params) From a05c748e81ea9d703de47748b3e3de3498c77eea Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 15:05:03 +0200 Subject: [PATCH 057/247] // addJqueryPlugin receives array in first argument --- modules/crossselling/crossselling.php | 2 +- modules/productscategory/productscategory.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/crossselling/crossselling.php b/modules/crossselling/crossselling.php index 14620d283..0df37e319 100755 --- a/modules/crossselling/crossselling.php +++ b/modules/crossselling/crossselling.php @@ -117,7 +117,7 @@ class CrossSelling extends Module { $this->context->controller->addCSS(($this->_path).'crossselling.css', 'all'); $this->context->controller->addJS(($this->_path).'js/crossselling.js'); - $this->context->controller->addJqueryPlugin('scrollTo', 'serialScroll'); + $this->context->controller->addJqueryPlugin(array('scrollTo', 'serialScroll')); } /** diff --git a/modules/productscategory/productscategory.php b/modules/productscategory/productscategory.php index 203838fc8..dd4674de2 100644 --- a/modules/productscategory/productscategory.php +++ b/modules/productscategory/productscategory.php @@ -186,7 +186,7 @@ class productsCategory extends Module { $this->context->controller->addCSS($this->_path.'productscategory.css', 'all'); $this->context->controller->addJS($this->_path.'productscategory.js'); - $this->context->controller->addJqueryPlugin('scrollTo', 'serialScroll'); + $this->context->controller->addJqueryPlugin(array('scrollTo', 'serialScroll')); } public function hookAddProduct($params) From 61884ec223a71cb9a3a10132d0253f7a7274a938 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 16:31:56 +0200 Subject: [PATCH 058/247] // norms --- admin-dev/themes/default/template/header.tpl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/admin-dev/themes/default/template/header.tpl b/admin-dev/themes/default/template/header.tpl index 1ddf6bffc..327fb5a8f 100644 --- a/admin-dev/themes/default/template/header.tpl +++ b/admin-dev/themes/default/template/header.tpl @@ -43,11 +43,11 @@ var roundMode = {$round_mode}; {if isset($shop_context)} {if $shop_context == Shop::CONTEXT_ALL} - var youEditFieldFor = "{l s='A modification of this field will be applied for all shops' slashes=1 }"; + var youEditFieldFor = '{l s='A modification of this field will be applied for all shops' slashes=1}'; {elseif $shop_context == Shop::CONTEXT_GROUP} - var youEditFieldFor = "{l s='A modification of this field will be applied for all shops of group ' slashes=1 }{$shop_name}"; + var youEditFieldFor = '{l s='A modification of this field will be applied for all shops of group' slashes=1} {$shop_name}'; {else} - var youEditFieldFor = "{l s='A modification of this field will be applied for the shop ' slashes=1 }{$shop_name}"; + var youEditFieldFor = '{l s='A modification of this field will be applied for the shop' slashes=1} {$shop_name}'; {/if} {else} var youEditFieldFor = ''; @@ -65,11 +65,11 @@ var new_msg = '{l s='A new message posted on your shop.' slashes=1}'; var excerpt_msg = '{l s='Excerpt: ' slashes=1}'; var see_msg = '{l s='Read this message' slashes=1}'; - var token_admin_orders = '{getAdminToken tab='AdminOrders' slashes=1}'; - var token_admin_customers = '{getAdminToken tab='AdminCustomers' slashes=1}'; - var token_admin_customer_threads = '{getAdminToken tab='AdminCustomerThreads' slashes=1}'; + var token_admin_orders = '{getAdminToken tab='AdminOrders'}'; + var token_admin_customers = '{getAdminToken tab='AdminCustomers'}'; + var token_admin_customer_threads = '{getAdminToken tab='AdminCustomerThreads'}'; var currentIndex = '{$currentIndex}'; - var choose_language_translate = "{l s='Choose language' slashes=1 }"; + var choose_language_translate = '{l s='Choose language' slashes=1}'; {/if} From 16ffbd8ee5794a840a5851c1d547f2815a519788 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 16:46:22 +0200 Subject: [PATCH 059/247] // norms --- admin-dev/themes/default/template/header.tpl | 77 ++++++++++---------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/admin-dev/themes/default/template/header.tpl b/admin-dev/themes/default/template/header.tpl index 327fb5a8f..b2c8bb92d 100644 --- a/admin-dev/themes/default/template/header.tpl +++ b/admin-dev/themes/default/template/header.tpl @@ -34,54 +34,51 @@ {$meta_title} - PrestaShop™ {if $display_header} {/if} - {if isset($css_files)} - {foreach from=$css_files key=css_uri item=media} - - {/foreach} +{foreach from=$css_files key=css_uri item=media} + +{/foreach} {/if} {if isset($js_files)} - {foreach from=$js_files item=js_uri} - - {/foreach} +{foreach from=$js_files item=js_uri} + +{/foreach} {/if} From c1ecf43be873930a88fabac5e7ac0f60c48221b7 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Mon, 21 Oct 2013 17:39:20 +0200 Subject: [PATCH 060/247] [-] MO : Fix bug #PSCFV-10775, could not upload .jpeg in TinyMCE --- admin-dev/ajaxfilemanager/inc/config.base.php | 4 ++-- admin-dev/ajaxfilemanager/inc/config.tinymce.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/admin-dev/ajaxfilemanager/inc/config.base.php b/admin-dev/ajaxfilemanager/inc/config.base.php index 28155f21e..5b57feed0 100755 --- a/admin-dev/ajaxfilemanager/inc/config.base.php +++ b/admin-dev/ajaxfilemanager/inc/config.base.php @@ -78,9 +78,9 @@ define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste - define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png');// // + define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,jpeg,png');// // //define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');// - define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,jpg,png'); + define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,jpg,jpeg,jpeg,png'); //define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); // define('CONFIG_UPLOAD_INVALID_EXTS', ''); diff --git a/admin-dev/ajaxfilemanager/inc/config.tinymce.php b/admin-dev/ajaxfilemanager/inc/config.tinymce.php index c406f47e5..9070323a2 100755 --- a/admin-dev/ajaxfilemanager/inc/config.tinymce.php +++ b/admin-dev/ajaxfilemanager/inc/config.tinymce.php @@ -73,9 +73,9 @@ define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste - define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); // + define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,jpeg,png,txt'); // //define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');// - define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,bmp,txt,jpg,png,tif,html,htm,js,css,xml,xsl,dtd,mp3,wav,wmv,wma,rm,rmvb,mov,swf'); + define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,bmp,txt,jpg,jpeg,png,tif,html,htm,js,css,xml,xsl,dtd,mp3,wav,wmv,wma,rm,rmvb,mov,swf'); //define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); // define('CONFIG_UPLOAD_INVALID_EXTS', ''); From 2aa52356ade9bffb8d9526942475b6adf89a9cd4 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 22 Oct 2013 09:39:59 +0200 Subject: [PATCH 061/247] [-] BO : Fix bug #PSCFV-10607 one upload name --- .../default/template/controllers/products/virtualproduct.tpl | 1 + 1 file changed, 1 insertion(+) diff --git a/admin-dev/themes/default/template/controllers/products/virtualproduct.tpl b/admin-dev/themes/default/template/controllers/products/virtualproduct.tpl index 0a6c0d865..227e3ea44 100644 --- a/admin-dev/themes/default/template/controllers/products/virtualproduct.tpl +++ b/admin-dev/themes/default/template/controllers/products/virtualproduct.tpl @@ -58,6 +58,7 @@ $('#file_missing').hide(); $('#virtual_product_name').attr('value', fileName); $("#upload-confirmation .error").remove(); + $('#upload-confirmation div').find('span').remove() $('#upload-confirmation div').prepend('{l s='The file'} "'+fileName+'" {l s='has successfully been uploaded'}' + ''); $("#upload-confirmation").show(); From ce8d01ad4c8a56a9fb0631881607bf85dc690eb0 Mon Sep 17 00:00:00 2001 From: Gaelle ITZKOVITZ Date: Tue, 22 Oct 2013 11:09:53 +0200 Subject: [PATCH 062/247] [-] MO : if customer is logged we do not recreate it --- modules/loyalty/LoyaltyModule.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/loyalty/LoyaltyModule.php b/modules/loyalty/LoyaltyModule.php index 5d8ef5c9a..c4511439c 100644 --- a/modules/loyalty/LoyaltyModule.php +++ b/modules/loyalty/LoyaltyModule.php @@ -87,7 +87,9 @@ class LoyaltyModule extends ObjectModel { $context = Context::getContext(); $context->cart = $cart; - $context->customer = new Customer($context->cart->id_customer); + // if customer is logged we do not recreate it + if(!$context->customer->isLogged(true)) + $context->customer = new Customer($context->cart->id_customer); $context->language = new Language($context->cart->id_lang); $context->shop = new Shop($context->cart->id_shop); $context->currency = new Currency($context->cart->id_currency, null, $context->shop->id); From d20aea056331fb484072ad94e2c4f061881aaa88 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 22 Oct 2013 11:27:45 +0200 Subject: [PATCH 063/247] [-] BO : Fix bug #PSCFV-10767, could not retrieve feature value when product IDs not forced --- classes/FeatureValue.php | 4 +- controllers/admin/AdminImportController.php | 109 ++++++++++++-------- 2 files changed, 67 insertions(+), 46 deletions(-) diff --git a/classes/FeatureValue.php b/classes/FeatureValue.php index 97b07476e..25c0fb4fd 100644 --- a/classes/FeatureValue.php +++ b/classes/FeatureValue.php @@ -130,6 +130,7 @@ class FeatureValueCore extends ObjectModel public static function addFeatureValueImport($id_feature, $value, $id_product = null, $id_lang = null) { + $id_feature_value = false; if (!is_null($id_product) && $id_product) { $id_feature_value = Db::getInstance()->getValue(' @@ -145,7 +146,8 @@ class FeatureValueCore extends ObjectModel WHERE `id_feature_value` = '.(int)$id_feature_value.' AND `id_lang` = '.(int)$id_lang); } - else + + if (!$id_feature_value) $id_feature_value = Db::getInstance()->getValue(' SELECT fv.`id_feature_value` FROM '._DB_PREFIX_.'feature_value fv diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 1fcc0f353..8ae22ff07 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -1086,11 +1086,11 @@ class AdminImportControllerCore extends AdminController // Get shops for each attributes $info['shop'] = explode($this->multiple_value_separator, $info['shop']); - + foreach ($info['shop'] as $shop) - if (!is_numeric($shop)) + if (!empty($shop) && !is_numeric($shop)) $category->addShop(Shop::getIdByName($shop)); - else + elseif (!empty($shop)) $category->addShop($shop); } } @@ -1162,9 +1162,9 @@ class AdminImportControllerCore extends AdminController // link product to shops $product->id_shop_list = array(); foreach (explode($this->multiple_value_separator, $product->shop) as $shop) - if (!is_numeric($shop)) + if (!empty($shop) && !is_numeric($shop)) $product->id_shop_list[] = Shop::getIdByName($shop); - else + elseif (!empty($shop)) $product->id_shop_list[] = $shop; if ((int)$product->id_tax_rules_group != 0) @@ -1405,8 +1405,10 @@ class AdminImportControllerCore extends AdminController $product_shop = explode($this->multiple_value_separator, $product->shop); foreach ($product_shop as $shop) { + if (empty($shop)) + continue; $shop = trim($shop); - if (!is_numeric($shop)) + if (!empty($shop) && !is_numeric($shop)) $shop = Shop::getIdByName($shop); if (in_array($shop, $shop_ids)) @@ -1458,36 +1460,36 @@ class AdminImportControllerCore extends AdminController $id_shop_list = array(); foreach ($info['shop'] as $shop) - if (!is_numeric($shop)) + if (!empty($shop) && !is_numeric($shop)) $id_shop_list[] = (int)Shop::getIdByName($shop); - else + elseif (!empty($shop)) $id_shop_list[] = $shop; - if ((isset($info['reduction_price']) && $info['reduction_price'] > 0) || (isset($info['reduction_percent']) && $info['reduction_percent'] > 0)) - foreach($id_shop_list as $id_shop) - { - $specific_price = SpecificPrice::getSpecificPrice($product->id, $id_shop, 0, 0, 0, 1, 0, 0, 0, 0); + if ((isset($info['reduction_price']) && $info['reduction_price'] > 0) || (isset($info['reduction_percent']) && $info['reduction_percent'] > 0)) + foreach($id_shop_list as $id_shop) + { + $specific_price = SpecificPrice::getSpecificPrice($product->id, $id_shop, 0, 0, 0, 1, 0, 0, 0, 0); - if (is_array($specific_price) && isset($specific_price['id_specific_price'])) - $specific_price = new SpecificPrice((int)$specific_price['id_specific_price']); - else - $specific_price = new SpecificPrice(); - $specific_price->id_product = (int)$product->id; - $specific_price->id_specific_price_rule = 0; - $specific_price->id_shop = $id_shop; - $specific_price->id_currency = 0; - $specific_price->id_country = 0; - $specific_price->id_group = 0; - $specific_price->price = -1; - $specific_price->id_customer = 0; - $specific_price->from_quantity = 1; - $specific_price->reduction = (isset($info['reduction_price']) && $info['reduction_price']) ? $info['reduction_price'] : $info['reduction_percent'] / 100; - $specific_price->reduction_type = (isset($info['reduction_price']) && $info['reduction_price']) ? 'amount' : 'percentage'; - $specific_price->from = (isset($info['reduction_from']) && Validate::isDate($info['reduction_from'])) ? $info['reduction_from'] : '0000-00-00 00:00:00'; - $specific_price->to = (isset($info['reduction_to']) && Validate::isDate($info['reduction_to'])) ? $info['reduction_to'] : '0000-00-00 00:00:00'; - if (!$specific_price->save()) - $this->addProductWarning(Tools::safeOutput($info['name']), $product->id, $this->l('Discount is invalid')); - } + if (is_array($specific_price) && isset($specific_price['id_specific_price'])) + $specific_price = new SpecificPrice((int)$specific_price['id_specific_price']); + else + $specific_price = new SpecificPrice(); + $specific_price->id_product = (int)$product->id; + $specific_price->id_specific_price_rule = 0; + $specific_price->id_shop = $id_shop; + $specific_price->id_currency = 0; + $specific_price->id_country = 0; + $specific_price->id_group = 0; + $specific_price->price = -1; + $specific_price->id_customer = 0; + $specific_price->from_quantity = 1; + $specific_price->reduction = (isset($info['reduction_price']) && $info['reduction_price']) ? $info['reduction_price'] : $info['reduction_percent'] / 100; + $specific_price->reduction_type = (isset($info['reduction_price']) && $info['reduction_price']) ? 'amount' : 'percentage'; + $specific_price->from = (isset($info['reduction_from']) && Validate::isDate($info['reduction_from'])) ? $info['reduction_from'] : '0000-00-00 00:00:00'; + $specific_price->to = (isset($info['reduction_to']) && Validate::isDate($info['reduction_to'])) ? $info['reduction_to'] : '0000-00-00 00:00:00'; + if (!$specific_price->save()) + $this->addProductWarning(Tools::safeOutput($info['name']), $product->id, $this->l('Discount is invalid')); + } if (isset($product->tags) && !empty($product->tags)) { @@ -1501,7 +1503,8 @@ class AdminImportControllerCore extends AdminController if (is_array($product->tags) && count($product->tags)) { foreach ($product->tags as $key => $tag) - $product->tags[$key] = trim($tag); + if (!empty($tag)) + $product->tags[$key] = trim($tag); $tags[$id_lang] = $product->tags; $product->tags = $tags; } @@ -1509,7 +1512,7 @@ class AdminImportControllerCore extends AdminController } // Delete tags for this id product, for no duplicating error Tag::deleteTagsForProduct($product->id); - if (!is_array($product->tags)) + if (!is_array($product->tags) && !empty($product->tags)) { $product->tags = AdminImportController::createMultiLangField($product->tags); foreach ($product->tags as $key => $tags) @@ -1593,14 +1596,19 @@ class AdminImportControllerCore extends AdminController if (isset($features['features']) && !empty($features['features'])) foreach (explode($this->multiple_value_separator, $features['features']) as $single_feature) { + if (empty($single_feature)) + continue; $tab_feature = explode(':', $single_feature); - $feature_name = trim($tab_feature[0]); - $feature_value = trim($tab_feature[1]); - $position = isset($tab_feature[2]) ? $tab_feature[2]: false; + $feature_name = isset($tab_feature[0]) ? trim($tab_feature[0]) : ''; + $feature_value = isset($tab_feature[1]) ? trim($tab_feature[1]) : ''; + $position = isset($tab_feature[2]) ? (int)$tab_feature[2] : false; if(!empty($feature_name) && !empty($feature_value)) { - $id_feature = Feature::addFeatureImport($feature_name, $position); - $id_feature_value = FeatureValue::addFeatureValueImport($id_feature, $feature_value, $product->id, $id_lang); + $id_feature = (int)Feature::addFeatureImport($feature_name, $position); + $id_product = null; + if (Tools::getValue('forceIDs') || Tools::getValue('match_ref')) + $id_product = (int)$product->id; + $id_feature_value = (int)FeatureValue::addFeatureValueImport($id_feature, $feature_value, $id_product, $id_lang); Product::addFeatureProductImport($product->id, $id_feature, $id_feature_value); } } @@ -1658,11 +1666,12 @@ class AdminImportControllerCore extends AdminController $info['shop'] = explode($this->multiple_value_separator, $info['shop']); $id_shop_list = array(); - foreach ($info['shop'] as $shop) - if (!is_numeric($shop)) - $id_shop_list[] = Shop::getIdByName($shop); - else - $id_shop_list[] = $shop; + if (is_array($info['shop']) && count($info['shop'])) + foreach ($info['shop'] as $shop) + if (!empty($shop) && !is_numeric($shop)) + $id_shop_list[] = Shop::getIdByName($shop); + elseif (!empty($shop)) + $id_shop_list[] = $shop; if(isset($info['id_product'])) $product = new Product((int)$info['id_product'], false, $default_language); @@ -1736,12 +1745,14 @@ class AdminImportControllerCore extends AdminController if(isset($info['group'])) foreach (explode($this->multiple_value_separator, $info['group']) as $key => $group) { + if (empty($group)) + continue; $tab_group = explode(':', $group); $group = trim($tab_group[0]); if (!isset($tab_group[1])) $type = 'select'; else - $type = trim($tab_group[1]); + $type = trim($tab_group[1]); // sets group $groups_attributes[$key]['group'] = $group; @@ -1791,6 +1802,8 @@ class AdminImportControllerCore extends AdminController if(isset($info['attribute'])) foreach (explode($this->multiple_value_separator, $info['attribute']) as $key => $attribute) { + if (empty($attribute)) + continue; $tab_attribute = explode(':', $attribute); $attribute = trim($tab_attribute[0]); // if position is filled @@ -2002,6 +2015,8 @@ class AdminImportControllerCore extends AdminController { foreach ($id_shop_list as $id_shop) { + if (empty($id_shop)) + continue; $shop = new Shop((int)$id_shop); $group_shop = $shop->getGroup(); if ($group_shop->share_customer) @@ -2357,6 +2372,8 @@ class AdminImportControllerCore extends AdminController $shops = array(); foreach ($manufacturer->shop as $shop) { + if (empty($shop)) + continue; $shop = trim($shop); if (!is_numeric($shop)) $shop = ShopGroup::getIdByName($shop); @@ -2434,6 +2451,8 @@ class AdminImportControllerCore extends AdminController $shops = array(); foreach ($supplier->shop as $shop) { + if (empty($shop)) + continue; $shop = trim($shop); if (!is_numeric($shop)) $shop = ShopGroup::getIdByName($shop); From 1ae587475b5b58c80744ece54554e576193d2f6d Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 22 Oct 2013 12:19:58 +0200 Subject: [PATCH 064/247] [-] MO : Fix bug #PSCFV-10787, cms associated to all shops --- modules/blockcms/BlockCMSModel.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/blockcms/BlockCMSModel.php b/modules/blockcms/BlockCMSModel.php index d0c63ee10..88c2a969f 100644 --- a/modules/blockcms/BlockCMSModel.php +++ b/modules/blockcms/BlockCMSModel.php @@ -364,15 +364,20 @@ class BlockCMSModel extends ObjectModel return Db::getInstance()->executeS($sql); } - public static function getCMSBlockPages($id_block) + public static function getCMSBlockPages($id_block, $id_shop = false) { + $id_shop = ($id_shop !== false) ? $id_shop : Context::getContext()->shop->id; + $sql = 'SELECT cl.`id_cms`, cl.`meta_title`, cl.`link_rewrite` FROM `'._DB_PREFIX_.'cms_block_page` bcp INNER JOIN `'._DB_PREFIX_.'cms_lang` cl ON (bcp.`id_cms` = cl.`id_cms`) INNER JOIN `'._DB_PREFIX_.'cms` c ON (bcp.`id_cms` = c.`id_cms`) + INNER JOIN `'._DB_PREFIX_.'cms_shop` cs + ON (c.`id_cms` = cs.`id_cms`) WHERE bcp.`id_cms_block` = '.(int)$id_block.' + AND cs.`id_shop` = '.(int)$id_shop.' AND cl.`id_lang` = '.(int)Context::getContext()->language->id.' AND bcp.`is_category` = 0 AND c.`active` = 1 @@ -534,8 +539,7 @@ class BlockCMSModel extends ObjectModel { $key = (int)$cmsCategory['id_cms_block']; $content[$key]['display_store'] = $cmsCategory['display_store']; - $content[$key]['cms'] = BlockCMSModel::getCMSBlockPages($cmsCategory['id_cms_block']); - + $content[$key]['cms'] = BlockCMSModel::getCMSBlockPages($cmsCategory['id_cms_block'], $id_shop); $links = array(); if (count($content[$key]['cms'])) { From e857fb59781eed1f5c431825bc5ec65abbb4793f Mon Sep 17 00:00:00 2001 From: PhpMadman Date: Tue, 22 Oct 2013 13:34:52 +0200 Subject: [PATCH 065/247] [*] FO: Removed missplaced on mobile theme --- themes/default/mobile/order-detail.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/default/mobile/order-detail.tpl b/themes/default/mobile/order-detail.tpl index feaf3fee9..c51274600 100644 --- a/themes/default/mobile/order-detail.tpl +++ b/themes/default/mobile/order-detail.tpl @@ -51,7 +51,7 @@ {if $invoice AND $invoiceAllowed}
  • - {l s='Download your invoice as a PDF file.'}
  • + {l s='Download your invoice as a PDF file.'} {/if} {if $order->recyclable} From 2989538ce136f66c9f42118544ae17fba2570c67 Mon Sep 17 00:00:00 2001 From: Fabio Chelly Date: Tue, 22 Oct 2013 15:53:20 +0200 Subject: [PATCH 066/247] [*] BO Module mailalerts: send e-mail to merchand when product is out of stock --- modules/mailalerts/mailalerts.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/mailalerts/mailalerts.php b/modules/mailalerts/mailalerts.php index f10151f81..485240d43 100644 --- a/modules/mailalerts/mailalerts.php +++ b/modules/mailalerts/mailalerts.php @@ -452,16 +452,20 @@ class MailAlerts extends Module public function hookActionUpdateQuantity($params) { $id_product = (int)$params['id_product']; + $product = new Product($id_product); + $product_has_attributes = $product->hasAttributes(); $id_product_attribute = (int)$params['id_product_attribute']; $quantity = (int)$params['quantity']; $context = Context::getContext(); $id_shop = (int)$context->shop->id; $id_lang = (int)$context->language->id; $product = new Product($id_product, true, $id_lang, $id_shop, $context); - $configuration = Configuration::getMultiple(array('MA_LAST_QTIES', 'PS_STOCK_MANAGEMENT', 'PS_SHOP_EMAIL', 'PS_SHOP_NAME'), $id_lang, null, $id_shop); + $configuration = Configuration::getMultiple(array('MA_LAST_QTIES', 'PS_STOCK_MANAGEMENT', 'PS_SHOP_EMAIL', 'PS_SHOP_NAME'), null, null, $id_shop); $ma_last_qties = (int)$configuration['MA_LAST_QTIES']; - - if ($product->active == 1 && (int)$quantity <= $ma_last_qties && !(!$this->_merchant_oos || empty($this->_merchant_mails)) && $configuration['PS_STOCK_MANAGEMENT']) + + $check_oos = ($product_has_attributes && $id_product_attribute) || (!$product_has_attributes && !$id_product_attribute); + + if ($check_oos && $product->active == 1 && (int)$quantity <= $ma_last_qties && !(!$this->_merchant_oos || empty($this->_merchant_mails)) && $configuration['PS_STOCK_MANAGEMENT']) { $iso = Language::getIsoById($id_lang); $product_name = Product::getProductName($id_product, $id_product_attribute, $id_lang); From 7cbaada8443edbb1089f32b16ca6d7c233239fc8 Mon Sep 17 00:00:00 2001 From: ldecoker Date: Tue, 22 Oct 2013 17:00:56 +0200 Subject: [PATCH 067/247] [BO][-] Notice messages when accessing the BO translation page When accessing the translation part with "core translation" , you got 2 errors: Notice: Use of undefined constant _PS_THEME_SELECTED_DIR_ - assumed '_PS_THEME_SELECTED_DIR_' in controllers\admin\AdminTranslationsController.php on line 1018 Notice: Use of undefined constant _PS_THEME_SELECTED_DIR_ - assumed '_PS_THEME_SELECTED_DIR_' in \controllers\admin\AdminTranslationsController.php on line 1026 It's because the variable $this->theme_selected is not set for that case. --- controllers/admin/AdminTranslationsController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/controllers/admin/AdminTranslationsController.php b/controllers/admin/AdminTranslationsController.php index 57ad71856..d5fe4b7db 100644 --- a/controllers/admin/AdminTranslationsController.php +++ b/controllers/admin/AdminTranslationsController.php @@ -1221,6 +1221,8 @@ class AdminTranslationsControllerCore extends AdminController // Set the path of selected theme if ($this->theme_selected) define('_PS_THEME_SELECTED_DIR_', _PS_ROOT_DIR_.'/themes/'.$this->theme_selected.'/'); + else + define('_PS_THEME_SELECTED_DIR_', ''); // Get type of translation if (($type = Tools::getValue('type')) && !is_array($type)) From e6e2db8400133b2c54dabb61ab01057b54dd7f51 Mon Sep 17 00:00:00 2001 From: ldecoker Date: Tue, 22 Oct 2013 18:55:32 +0200 Subject: [PATCH 068/247] [PDF] [-] {else if} instead of {elseif} --- pdf/invoice.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pdf/invoice.tpl b/pdf/invoice.tpl index 1f48322ce..918cdb15d 100755 --- a/pdf/invoice.tpl +++ b/pdf/invoice.tpl @@ -147,7 +147,7 @@ {if (isset($order_detail.reduction_amount) && $order_detail.reduction_amount > 0)} -{displayPrice currency=$order->id_currency price=$order_detail.reduction_amount} - {else if (isset($order_detail.reduction_percent) && $order_detail.reduction_percent > 0)} + {elseif (isset($order_detail.reduction_percent) && $order_detail.reduction_percent > 0)} -{$order_detail.reduction_percent}% {else} -- From ce4170574c3b2b01c125f27dbda6ea466f4b68d2 Mon Sep 17 00:00:00 2001 From: ldecoker Date: Tue, 22 Oct 2013 18:57:12 +0200 Subject: [PATCH 069/247] [PDF] [-] {else if} instead of {elseif} (B2B invoice template) --- pdf/invoice-b2b.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pdf/invoice-b2b.tpl b/pdf/invoice-b2b.tpl index 0fc86cba0..6f7ba9462 100755 --- a/pdf/invoice-b2b.tpl +++ b/pdf/invoice-b2b.tpl @@ -151,7 +151,7 @@ {if (isset($order_detail.reduction_amount) && $order_detail.reduction_amount > 0)} -{displayPrice currency=$order->id_currency price=$order_detail.reduction_amount} - {else if (isset($order_detail.reduction_percent) && $order_detail.reduction_percent > 0)} + {elseif (isset($order_detail.reduction_percent) && $order_detail.reduction_percent > 0)} -{$order_detail.reduction_percent}% {else} -- @@ -289,4 +289,4 @@ {/if} -

    \ No newline at end of file +
    From 5d28d38a2250f497a78b4c6b7b855578aab4d7be Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 01:18:09 +0200 Subject: [PATCH 070/247] [-] BO : Fix bug #PSCFV-7907 AdminImport, add custom field to features --- classes/FeatureValue.php | 24 ++++++++++++--------- controllers/admin/AdminImportController.php | 15 ++++++------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/classes/FeatureValue.php b/classes/FeatureValue.php index 25c0fb4fd..b43abfb58 100644 --- a/classes/FeatureValue.php +++ b/classes/FeatureValue.php @@ -128,32 +128,36 @@ class FeatureValueCore extends ObjectModel return $tab['value']; } - public static function addFeatureValueImport($id_feature, $value, $id_product = null, $id_lang = null) + public static function addFeatureValueImport($id_feature, $value, $id_product, $id_lang = null, $custom = false) { $id_feature_value = false; if (!is_null($id_product) && $id_product) { $id_feature_value = Db::getInstance()->getValue(' - SELECT `id_feature_value` - FROM '._DB_PREFIX_.'feature_product - WHERE `id_feature` = '.(int)$id_feature.' - AND `id_product` = '.(int)$id_product); + SELECT fp.`id_feature_value` + FROM '._DB_PREFIX_.'feature_product fp + INNER JOIN '._DB_PREFIX_.'feature_value fv USING (`id_feature_value`) + WHERE fp.`id_feature` = '.(int)$id_feature.' + AND fv.`custom` = '.(int)$custom.' + AND fp.`id_product` = '.(int)$id_product); - if ($id_feature_value && !is_null($id_lang) && $id_lang) + if ($custom && $id_feature_value && !is_null($id_lang) && $id_lang) Db::getInstance()->execute(' UPDATE '._DB_PREFIX_.'feature_value_lang SET `value` = \''.pSQL($value).'\' WHERE `id_feature_value` = '.(int)$id_feature_value.' + AND `value` != \''.pSQL($value).'\' AND `id_lang` = '.(int)$id_lang); } - - if (!$id_feature_value) + + if (!$custom) $id_feature_value = Db::getInstance()->getValue(' SELECT fv.`id_feature_value` FROM '._DB_PREFIX_.'feature_value fv - LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.`id_feature_value` = fv.`id_feature_value`) + LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.`id_feature_value` = fv.`id_feature_value` AND fvl.`id_lang` = '.(int)$id_lang.') WHERE `value` = \''.pSQL($value).'\' AND fv.`id_feature` = '.(int)$id_feature.' + AND fv.`custom` = 0 GROUP BY fv.`id_feature_value`'); if ($id_feature_value) @@ -162,7 +166,7 @@ class FeatureValueCore extends ObjectModel // Feature doesn't exist, create it $feature_value = new FeatureValue(); $feature_value->id_feature = (int)$id_feature; - $feature_value->custom = 0; + $feature_value->custom = (bool)$custom; foreach (Language::getLanguages() as $language) $feature_value->value[$language['id_lang']] = $value; $feature_value->add(); diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index 8ae22ff07..e80ce48c0 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -247,7 +247,7 @@ class AdminImportControllerCore extends AdminController 'delete_existing_images' => array( 'label' => $this->l('Delete existing images (0 = No, 1 = Yes)') ), - 'features' => array('label' => $this->l('Feature(Name:Value:Position)')), + 'features' => array('label' => $this->l('Feature(Name:Value:Position:Customized)')), 'online_only' => array('label' => $this->l('Available online only (0 = No, 1 = Yes)')), 'condition' => array('label' => $this->l('Condition')), 'customizable' => array('label' => $this->l('Customizable (0 = No, 1 = Yes)')), @@ -472,9 +472,8 @@ class AdminImportControllerCore extends AdminController } - $this->separator = Tools::substr(strval(trim(Tools::getValue('separator', ','))), 0, 1); - $this->multiple_value_separator = Tools::substr(strval(trim(Tools::getValue('multiple_value_separator', ';'))), 0, 1); - + $this->separator = ($separator = Tools::substr(strval(trim(Tools::getValue('separator'))), 0, 1)) ? $separator : ';'; + $this->multiple_value_separator = ($separator = Tools::substr(strval(trim(Tools::getValue('multiple_value_separator'))), 0, 1)) ? $separator : ','; parent::__construct(); } @@ -569,8 +568,8 @@ class AdminImportControllerCore extends AdminController $this->context->cookie->entity_selected = (int)Tools::getValue('entity'); $this->context->cookie->iso_lang_selected = base64_encode(Tools::getValue('iso_lang')); - $this->context->cookie->separator_selected = base64_encode(Tools::getValue('separator')); - $this->context->cookie->multiple_value_separator_selected = base64_encode(Tools::getValue('multiple_value_separator')); + $this->context->cookie->separator_selected = base64_encode($this->separator); + $this->context->cookie->multiple_value_separator_selected = base64_encode($this->multiple_value_separator); $this->context->cookie->csv_selected = base64_encode(Tools::getValue('csv')); $this->tpl_view_vars = array( @@ -1602,13 +1601,14 @@ class AdminImportControllerCore extends AdminController $feature_name = isset($tab_feature[0]) ? trim($tab_feature[0]) : ''; $feature_value = isset($tab_feature[1]) ? trim($tab_feature[1]) : ''; $position = isset($tab_feature[2]) ? (int)$tab_feature[2] : false; + $custom = isset($tab_feature[3]) ? (int)$tab_feature[3] : false; if(!empty($feature_name) && !empty($feature_value)) { $id_feature = (int)Feature::addFeatureImport($feature_name, $position); $id_product = null; if (Tools::getValue('forceIDs') || Tools::getValue('match_ref')) $id_product = (int)$product->id; - $id_feature_value = (int)FeatureValue::addFeatureValueImport($id_feature, $feature_value, $id_product, $id_lang); + $id_feature_value = (int)FeatureValue::addFeatureValueImport($id_feature, $feature_value, $id_product, $id_lang, $custom); Product::addFeatureProductImport($product->id, $id_feature, $id_feature_value); } } @@ -1626,7 +1626,6 @@ class AdminImportControllerCore extends AdminController StockAvailable::setQuantity((int)$product->id, 0, $product->quantity, $this->context->shop->id); } - $this->closeCsvFile($handle); } From feca06417f58cbc5f431662b56495ee19beb95da Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 01:23:35 +0200 Subject: [PATCH 071/247] // definition on addFeatureValueImport --- classes/FeatureValue.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/FeatureValue.php b/classes/FeatureValue.php index b43abfb58..4580966c3 100644 --- a/classes/FeatureValue.php +++ b/classes/FeatureValue.php @@ -128,7 +128,7 @@ class FeatureValueCore extends ObjectModel return $tab['value']; } - public static function addFeatureValueImport($id_feature, $value, $id_product, $id_lang = null, $custom = false) + public static function addFeatureValueImport($id_feature, $value, $id_product = null, $id_lang = null, $custom = false) { $id_feature_value = false; if (!is_null($id_product) && $id_product) From ae63336a378a2831614a4b9008f02980fbb075f2 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 01:41:05 +0200 Subject: [PATCH 072/247] [-] BO : Fix bug #PSCFV-10638, Admin Import by reference moves products to home category --- controllers/admin/AdminImportController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index e80ce48c0..c8ea39bb2 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -1137,7 +1137,7 @@ class AdminImportControllerCore extends AdminController else $product = new Product(); - if (array_key_exists('id', $info) && (int)$info['id'] && Product::existsInDatabase((int)$info['id'], 'product')) + if (isset($product->id) && $product->id && Product::existsInDatabase((int)$product->id, 'product')) { $product->loadStockData(); $category_data = Product::getProductCategories((int)$product->id); From 6cddb57ce3b8ab3e3a83a64f734a636e7f48fd13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Wed, 23 Oct 2013 10:34:00 +0200 Subject: [PATCH 073/247] [-] BO: Synchronize stock available after receipt supply order items #PSCFV-10724 --- controllers/admin/AdminSupplyOrdersController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminSupplyOrdersController.php b/controllers/admin/AdminSupplyOrdersController.php index 5d581be0f..659d8fc07 100644 --- a/controllers/admin/AdminSupplyOrdersController.php +++ b/controllers/admin/AdminSupplyOrdersController.php @@ -1387,7 +1387,9 @@ class AdminSupplyOrdersControllerCore extends AdminController true, $supply_order->id); - if (!$res) + if ($res) + StockAvailable::synchronize($supply_order_detail->id_product); + else $this->errors[] = Tools::displayError($this->l('Something went wrong when adding products to the warehouse.')); $location = Warehouse::getProductLocation($supply_order_detail->id_product, From 5fd3ad5adf8ba40017fd8aac32f28576c5e48f74 Mon Sep 17 00:00:00 2001 From: Fabio Chelly Date: Wed, 23 Oct 2013 10:55:23 +0200 Subject: [PATCH 074/247] [*] FO ProductSale: improves calculation of most selled products when there are a lot of products in shop --- classes/ProductSale.php | 61 +++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/classes/ProductSale.php b/classes/ProductSale.php index 2e6d2973c..7acfa7d9b 100644 --- a/classes/ProductSale.php +++ b/classes/ProductSale.php @@ -74,11 +74,22 @@ class ProductSaleCore $groups = FrontController::getCurrentCustomerGroups(); $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); $interval = Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20; + + //Subquery: get product ids in a separate query to (greatly!) improve performances and RAM usage + $sql = 'SELECT cp.`id_product` + FROM `'._DB_PREFIX_.'category_group` cg + LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) + WHERE cg.`id_group` '.$sql_groups; + $products = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); + $ids = array(); + foreach ($products as $product) + $ids[$product['id_product']] = 1; + $ids = array_keys($ids); + sort($ids); + $ids = count($ids) > 0 ? implode(',', $ids) : 'NULL'; - $prefix = ''; + //Main query if ($order_by == 'date_add') - $prefix = 'p.'; - $sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, @@ -103,13 +114,8 @@ class ProductSaleCore LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`) '.Product::sqlStock('p').' WHERE product_shop.`active` = 1 - AND product_shop.`visibility` != \'none\' - AND p.`id_product` IN ( - SELECT cp.`id_product` - FROM `'._DB_PREFIX_.'category_group` cg - LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) - WHERE cg.`id_group` '.$sql_groups.' - ) + AND p.`visibility` != \'none\' + AND p.`id_product` IN ('.$ids.') GROUP BY product_shop.id_product ORDER BY '.(!empty($order_table) ? '`'.pSQL($order_table).'`.' : '').'`'.pSQL($order_by).'` '.pSQL($order_way).' LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products; @@ -141,11 +147,27 @@ class ProductSaleCore $groups = FrontController::getCurrentCustomerGroups(); $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); + //Subquery: get product ids in a separate query to (greatly!) improve performances and RAM usage + $sql = 'SELECT cp.`id_product` + FROM `'._DB_PREFIX_.'category_group` cg + LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) + WHERE cg.`id_group` '.$sql_groups.' AND cp.`id_product` IS NOT NULL'; + $products = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); + $ids = array(); + foreach ($products as $product) + $ids[$product['id_product']] = 1; + $ids = array_keys($ids); + sort($ids); + $ids = count($ids) > 0 ? implode(',', $ids) : 'NULL'; + + //Main query $sql = 'SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, MAX(image_shop.`id_image`) id_image, il.`legend`, - ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category + ps.`quantity` AS sales, p.`ean13`, p.`upc`, cl.`link_rewrite` AS category, p.show_price, p.available_for_order, p.quantity, p.customizable, + IFNULL(pa.minimal_quantity, p.minimal_quantity) as minimal_quantity, p.out_of_stock FROM `'._DB_PREFIX_.'product_sale` ps LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product` '.Shop::addSqlAssociation('product', 'p').' + LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (ps.`id_product` = pa.`id_product` AND pa.default_on = 1) LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').' @@ -156,16 +178,12 @@ class ProductSaleCore ON cl.`id_category` = product_shop.`id_category_default` AND cl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('cl').' WHERE product_shop.`active` = 1 - AND product_shop.`visibility` != \'none\' - AND p.`id_product` IN ( - SELECT cp.`id_product` - FROM `'._DB_PREFIX_.'category_group` cg - LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) - WHERE cg.`id_group` '.$sql_groups.' - ) + AND p.`visibility` != \'none\' + AND p.`id_product` IN ('.$ids.') GROUP BY product_shop.id_product ORDER BY sales DESC LIMIT '.(int)($page_number * $nb_products).', '.(int)$nb_products; + if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql)) return false; @@ -173,6 +191,13 @@ class ProductSaleCore { $row['link'] = $context->link->getProductLink($row['id_product'], $row['link_rewrite'], $row['category'], $row['ean13']); $row['id_image'] = Product::defineProductImage($row, $id_lang); + $row['allow_oosp'] = Product::isAvailableWhenOutOfStock($row['out_of_stock']); + $row['price_tax_exc'] = Product::getPriceStatic( + (int)$row['id_product'], + false, + ((isset($row['id_product_attribute']) && !empty($row['id_product_attribute'])) ? (int)$row['id_product_attribute'] : null), + (Product::$_taxCalculationMethod == PS_TAX_EXC ? 2 : 6) + ); } return $result; } From 3e999ab5912a2f2271ea4942e79bd25227f69512 Mon Sep 17 00:00:00 2001 From: Fabio Chelly Date: Wed, 23 Oct 2013 10:56:48 +0200 Subject: [PATCH 075/247] [-] MO blockcart #PNM-1685 - [CODE] incorrect spelled variable in ajax-cart.js --- modules/blockcart/ajax-cart.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/blockcart/ajax-cart.js b/modules/blockcart/ajax-cart.js index c8348b3e6..e4b5d8a7d 100644 --- a/modules/blockcart/ajax-cart.js +++ b/modules/blockcart/ajax-cart.js @@ -175,7 +175,7 @@ var ajaxCart = { }, // add a product in the cart via ajax - add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist){ + add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, wishlist){ if (addedFromProductPage && !checkCustomizations()) { alert(fieldRequired); @@ -204,9 +204,9 @@ var ajaxCart = { data: 'controller=cart&add=1&ajax=true&qty=' + ((quantity && quantity != null) ? quantity : '1') + '&id_product=' + idProduct + '&token=' + static_token + ( (parseInt(idCombination) && idCombination != null) ? '&ipa=' + parseInt(idCombination): ''), success: function(jsonData,textStatus,jqXHR) { - // add appliance to whishlist module - if (whishlist && !jsonData.errors) - WishlistAddProductCart(whishlist[0], idProduct, idCombination, whishlist[1]); + // add appliance to wishlist module + if (wishlist && !jsonData.errors) + WishlistAddProductCart(wishlist[0], idProduct, idCombination, wishlist[1]); // add the picture to the cart var $element = $(callerElement).parent().parent().find('a.product_image img,a.product_img_link img'); From ad4ecefcf97d356308f7ebbb99a3755e4ee7793a Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 11:44:12 +0200 Subject: [PATCH 076/247] [-] FO : Prevent fatal error on getUniqReference when order not loaded --- themes/default/order-detail.tpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/themes/default/order-detail.tpl b/themes/default/order-detail.tpl index d7fb91517..bfc8d7a9f 100644 --- a/themes/default/order-detail.tpl +++ b/themes/default/order-detail.tpl @@ -22,7 +22,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} - +{if isset($order)}
    @@ -424,3 +424,4 @@ {else}

     {l s='You cannot return merchandise with a guest account'}

    {/if} +{/if} \ No newline at end of file From 373604fc976ba8d74571ca676d9809223bcf89a4 Mon Sep 17 00:00:00 2001 From: PhpMadman Date: Wed, 23 Oct 2013 11:52:35 +0200 Subject: [PATCH 077/247] [-] FO: removed width on message product select Limiting select could make the user think the select is not working if they click to much to the left on bigger screens --- themes/default/mobile/order-detail.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/default/mobile/order-detail.tpl b/themes/default/mobile/order-detail.tpl index c51274600..5bb34f101 100644 --- a/themes/default/mobile/order-detail.tpl +++ b/themes/default/mobile/order-detail.tpl @@ -278,7 +278,7 @@

    {l s='If you would like to add a comment about your order, please write it in the field below.'}

    - {foreach from=$products item=product name=products} From 747ec9a2c464a766f3baf87d64dff22d6e8728e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Wed, 23 Oct 2013 14:50:30 +0200 Subject: [PATCH 078/247] // notice on carrierwizard when step back --- controllers/admin/AdminCarrierWizardController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminCarrierWizardController.php b/controllers/admin/AdminCarrierWizardController.php index 7ec5071dc..ca726c228 100644 --- a/controllers/admin/AdminCarrierWizardController.php +++ b/controllers/admin/AdminCarrierWizardController.php @@ -884,7 +884,7 @@ class AdminCarrierWizardControllerCore extends AdminController $step_number = Tools::getValue('step_number'); if ($step_number == 4 && !Shop::isFeatureActive() || $step_number == 5 && Shop::isFeatureActive()) - return array(); + return array('fields' => array()); $step_fields = array( 1 => array('name', 'delay', 'grade', 'url'), @@ -903,7 +903,7 @@ class AdminCarrierWizardControllerCore extends AdminController foreach ($definition['fields'] as $field => $def) if (!in_array($field, $step_fields[$step_number])) unset($definition['fields'][$field]); - + return $definition; } From 554ab9414f51331dcf22729d6e85da18dec42fc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Wed, 23 Oct 2013 15:08:02 +0200 Subject: [PATCH 079/247] [-] BO: product listing should call Product::getPriceStatic() with the product default shop in the context when it is not a shop context --- controllers/admin/AdminProductsController.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index d6b44706c..4c50f38de 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -174,7 +174,7 @@ class AdminProductsControllerCore extends AdminController LEFT JOIN `'._DB_PREFIX_.'shop` shop ON (shop.id_shop = '.$id_shop.') LEFT JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (image_shop.`id_image` = i.`id_image` AND image_shop.`cover` = 1 AND image_shop.id_shop = '.$id_shop.')'; - $this->_select .= 'shop.name as shopname, '; + $this->_select .= 'shop.name as shopname, a.id_shop_default, '; $this->_select .= 'MAX('.$alias_image.'.id_image) id_image, cl.name `name_category`, '.$alias.'.`price`, 0 AS price_final, sav.`quantity` as sav_quantity, '.$alias.'.`active`'; if ($join_category) @@ -331,12 +331,17 @@ class AdminProductsControllerCore extends AdminController $nb = count($this->_list); if ($this->_list) { + $context = $this->context->cloneContext(); + $context->shop = clone($context->shop); /* update product final price */ for ($i = 0; $i < $nb; $i++) { + if (Context::getContext()->shop->getContext() != Shop::CONTEXT_SHOP) + $context->shop = new Shop((int)$this->_list[$i]['id_shop_default']); + // convert price with the currency from context $this->_list[$i]['price'] = Tools::convertPrice($this->_list[$i]['price'], $this->context->currency, true, $this->context); - $this->_list[$i]['price_tmp'] = Product::getPriceStatic($this->_list[$i]['id_product'], true, null, 2, null, false, true, 1, true); + $this->_list[$i]['price_tmp'] = Product::getPriceStatic($this->_list[$i]['id_product'], true, null, 2, null, false, true, 1, true, null, null, null, $nothing, true, true, $context); } } From 03ad842697bfd9923ee50b7e06cb36f9f41b498a Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 16:07:28 +0200 Subject: [PATCH 080/247] [-] BO : Fix bug #PSCFV-10790, Customer group names not exploded --- controllers/admin/AdminImportController.php | 69 ++++++++++++--------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index c8ea39bb2..ec8c31c92 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -958,7 +958,7 @@ class AdminImportControllerCore extends AdminController } elseif (isset($category->parent) && is_string($category->parent)) { - $category_parent = Category::searchByName($default_language_id, $category->parent, true); + $category_parent = Category::searchByName($id_lang, $category->parent, true); if ($category_parent['id_category']) { $category->id_parent = (int)$category_parent['id_category']; @@ -979,7 +979,7 @@ class AdminImportControllerCore extends AdminController { $this->errors[] = sprintf( Tools::displayError('%1$s (ID: %2$s) cannot be saved'), - $category_to_create->name[$default_language_id], + $category_to_create->name[$id_lang], (isset($category_to_create->id) && !empty($category_to_create->id))? $category_to_create->id : 'null' ); $this->errors[] = ($field_error !== true ? $field_error : '').(isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : ''). @@ -1021,8 +1021,8 @@ class AdminImportControllerCore extends AdminController ($lang_field_error = $category->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && empty($this->errors)) { $category_already_created = Category::searchByNameAndParentCategoryId( - $default_language_id, - $category->name[$default_language_id], + $id_lang, + $category->name[$id_lang], $category->id_parent ); @@ -1286,7 +1286,7 @@ class AdminImportControllerCore extends AdminController } else if (is_string($value) && !empty($value)) { - $category = Category::searchByName($default_language_id, trim($value), true); + $category = Category::searchByName($id_lang, trim($value), true); if ($category['id_category']) $product->id_category[] = (int)$category['id_category']; else @@ -1949,6 +1949,9 @@ class AdminImportControllerCore extends AdminController $this->receiveTab(); $handle = $this->openCsvFile(); $default_language_id = (int)Configuration::get('PS_LANG_DEFAULT'); + $id_lang = Language::getIdByIso(Tools::getValue('iso_lang')); + if (!Validate::isUnsignedId($id_lang)) + $id_lang = $default_language_id; AdminImportController::setLocale(); for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++) { @@ -1976,31 +1979,40 @@ class AdminImportControllerCore extends AdminController $customer_exist = true; $customer_groups = $customer->getGroups(); $addresses = $customer->getAddresses((int)Configuration::get('PS_LANG_DEFAULT')); - foreach ($customer_groups as $key => $group) - if ($group == $customer->id_default_group) - unset($customer_groups[$key]); } + if (!isset($customer_groups) || count($customer_groups) == 0) + $customer_groups = array(0 => Configuration::get('PS_CUSTOMER_GROUP')); + // Group Importation if (isset($info['group']) && !empty($info['group'])) { - if (!isset($customer_groups)) - $customer_groups = array(); - - $myGroup = Group::searchByName($default_language_id, $info['group']); - - if (!$myGroup) + foreach (explode($this->multiple_value_separator, $info['group']) as $key => $group) { - $myGroup = new Group(); - $myGroup->name = Array($default_language_id => $info['group']); - $myGroup->price_display_method = 1; - $myGroup->add(); - $myGroup = Group::searchByName($default_language_id, $info['group']); + if(empty($group)) + continue; + $id_group = false; + $myGroup = Group::searchByName($id_lang, $group); + if (isset($myGroup['id_group']) && $myGroup['id_group']) + $id_group = (int)$myGroup['id_group']; + if (!$id_group) + { + $myGroup = new Group(); + $myGroup->name = Array($id_lang => $group); + if ($id_lang != $default_language_id) + $myGroup->name = array_merge($myGroup->name, array($default_language_id => $group)); + $myGroup->price_display_method = 1; + $myGroup->add(); + if (Validate::isLoadedObject($myGroup)) + $id_group = (int)$myGroup->id; + } + if ($id_group) + $customer_groups[] = (int)$id_group; } - if (isset($myGroup['0']['id_group'])) - $customer_groups[] = $myGroup['0']['id_group']; } - + elseif(empty($info['group']) && isset($customer->id) && $customer->id) + $customer_groups = array(0 => Configuration::get('PS_CUSTOMER_GROUP')); + AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $customer); if ($customer->passwd) @@ -2037,7 +2049,7 @@ class AdminImportControllerCore extends AdminController //set temporally for validate field $customer->id_shop = $default_shop->id; $customer->id_shop_group = $default_shop->getGroup()->id; - + $customer_groups = array_flip(array_flip($customer_groups)); $res = true; if (($field_error = $customer->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $customer->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) @@ -2055,12 +2067,9 @@ class AdminImportControllerCore extends AdminController $customer->id = $current_id_customer; $res &= $customer->update(); } - else { $res &= $customer->add(); - if (isset($customer_groups)) - $customer->addGroups($customer_groups); if (isset($addresses)) foreach ($addresses as $address) { @@ -2069,6 +2078,8 @@ class AdminImportControllerCore extends AdminController Db::getInstance()->insert('address', $address); } } + if ($res && isset($customer_groups)) + $customer->updateGroup($customer_groups); } } else @@ -2083,8 +2094,6 @@ class AdminImportControllerCore extends AdminController else { $res &= $customer->add(); - if (isset($customer_groups)) - $customer->addGroups($customer_groups); if (isset($addresses)) foreach ($addresses as $address) { @@ -2093,9 +2102,12 @@ class AdminImportControllerCore extends AdminController Db::getInstance()->insert('address', $address); } } + if ($res && isset($customer_groups)) + $customer->updateGroup($customer_groups); } } } + unset($customer_groups); $customer_exist = false; if (!$res) { @@ -3088,3 +3100,4 @@ class AdminImportControllerCore extends AdminController } } } +?> \ No newline at end of file From 8e506ddff20568c21e3d99c583a28bb7ad41d7da Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 18:16:45 +0200 Subject: [PATCH 081/247] [-] BO : FIx bug #PSCFV-10736, could not load a product given from getBoughtProducts --- controllers/admin/AdminCustomersController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/controllers/admin/AdminCustomersController.php b/controllers/admin/AdminCustomersController.php index ad841c3f2..ef2a9ac0e 100644 --- a/controllers/admin/AdminCustomersController.php +++ b/controllers/admin/AdminCustomersController.php @@ -630,6 +630,8 @@ class AdminCustomersControllerCore extends AdminController for ($i = 0; $i < $total_interested; $i++) { $product = new Product($interested[$i]['id_product'], false, $this->default_form_language, $interested[$i]['id_shop']); + if (!Validate::isLoadedObject($product)) + continue; $interested[$i]['url'] = $this->context->link->getProductLink( $product->id, $product->link_rewrite, From 3e33a259ef0c6db435e24e9f0bc757cf2f12e6ef Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 18:33:37 +0200 Subject: [PATCH 082/247] [-] BO : FIx bug #PSCFV-10736 again, fixing query when product is not in base --- controllers/admin/AdminCustomersController.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminCustomersController.php b/controllers/admin/AdminCustomersController.php index ef2a9ac0e..33f1282f8 100644 --- a/controllers/admin/AdminCustomersController.php +++ b/controllers/admin/AdminCustomersController.php @@ -615,9 +615,10 @@ class AdminCustomersControllerCore extends AdminController $carts[$i]['name'] = $carrier->name; } - $sql = 'SELECT DISTINCT id_product, c.id_cart, c.id_shop, cp.id_shop AS cp_id_shop + $sql = 'SELECT DISTINCT cp.id_product, c.id_cart, c.id_shop, cp.id_shop AS cp_id_shop FROM '._DB_PREFIX_.'cart_product cp JOIN '._DB_PREFIX_.'cart c ON (c.id_cart = cp.id_cart) + JOIN '._DB_PREFIX_.'product p ON (cp.id_product = p.id_product) WHERE c.id_customer = '.(int)$customer->id.' AND cp.id_product NOT IN ( SELECT product_id @@ -630,7 +631,7 @@ class AdminCustomersControllerCore extends AdminController for ($i = 0; $i < $total_interested; $i++) { $product = new Product($interested[$i]['id_product'], false, $this->default_form_language, $interested[$i]['id_shop']); - if (!Validate::isLoadedObject($product)) + if (!Validate::isLoadedObject($product)) continue; $interested[$i]['url'] = $this->context->link->getProductLink( $product->id, From 56693da6e0264bcc0d6c97f8ec8f04db00bec5c5 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 23 Oct 2013 19:02:13 +0200 Subject: [PATCH 083/247] // remove warning Notice: Undefined variable: connections in AdminCustomersController.php on line 702 --- controllers/admin/AdminCustomersController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminCustomersController.php b/controllers/admin/AdminCustomersController.php index 33f1282f8..3a15323f2 100644 --- a/controllers/admin/AdminCustomersController.php +++ b/controllers/admin/AdminCustomersController.php @@ -646,6 +646,8 @@ class AdminCustomersControllerCore extends AdminController } $connections = $customer->getLastConnections(); + if (!is_array($connections)) + $connections = array(); $total_connections = count($connections); for ($i = 0; $i < $total_connections; $i++) { @@ -654,7 +656,7 @@ class AdminCustomersControllerCore extends AdminController preg_replace('/^www./', '', parse_url($connections[$i]['http_referer'], PHP_URL_HOST)) : $this->l('Direct link'); } - + $referrers = Referrer::getReferrers($customer->id); $total_referrers = count($referrers); for ($i = 0; $i < $total_referrers; $i++) From 6d3640e895924a48480ff9f52e56658e0a8621f9 Mon Sep 17 00:00:00 2001 From: Tom Panier Date: Thu, 24 Oct 2013 09:43:50 +0200 Subject: [PATCH 084/247] Conditions to hide VAT fields fail if there are no company fields "Company" fields may or may not be rendered on this form, whereas "VAT" fields are always rendered and depend on the former ones to be shown (or hidden) with CSS. This fixes an edge case where there are no "Company" fields rendered and "VAT" fields still wrongly appear, which was caused by the fact that `$('#field').val() != ''` is truthy when `$('#field').length` is zero (since `'' != undefined`). --- themes/default/order-opc-new-account.tpl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/themes/default/order-opc-new-account.tpl b/themes/default/order-opc-new-account.tpl index c96437cc3..cd0433f5a 100644 --- a/themes/default/order-opc-new-account.tpl +++ b/themes/default/order-opc-new-account.tpl @@ -74,14 +74,14 @@ {literal} function vat_number() { - if ($('#company').val() != '') + if (($('#company').length) && ($('#company').val() != '')) $('#vat_number_block').show(); else $('#vat_number_block').hide(); } function vat_number_invoice() { - if ($('#company_invoice').val() != '') + if (($('#company_invoice').length) && ($('#company_invoice').val() != '')) $('#vat_number_block_invoice').show(); else $('#vat_number_block_invoice').hide(); @@ -405,4 +405,4 @@
    -
    \ No newline at end of file +
    From b9de912dd30f731b0c5757ba961937e09ff2b099 Mon Sep 17 00:00:00 2001 From: Fabio Chelly Date: Thu, 24 Oct 2013 09:53:16 +0200 Subject: [PATCH 085/247] [-] MO : Fixed bug PNM-1431 - referralprogram Lack the % sign --- modules/referralprogram/controllers/front/program.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/referralprogram/controllers/front/program.php b/modules/referralprogram/controllers/front/program.php index 2b4d04dcd..68cf153b1 100755 --- a/modules/referralprogram/controllers/front/program.php +++ b/modules/referralprogram/controllers/front/program.php @@ -183,6 +183,8 @@ class ReferralprogramProgramModuleFrontController extends ModuleFrontController if ((int)($stats['nb_orders']) >= $orderQuantity) $canSendInvitations = true; + + $discountInPercent = Tools::getValue('discount_type', Configuration::get('REFERRAL_DISCOUNT_TYPE')) == 1; // Smarty display $this->context->smarty->assign(array( @@ -199,7 +201,7 @@ class ReferralprogramProgramModuleFrontController extends ModuleFrontController 'nbRevive' => $nbRevive, 'subscribeFriends' => ReferralProgramModule::getSponsorFriend((int)($this->context->customer->id), 'subscribed'), 'mails_exists' => (isset($mails_exists) ? $mails_exists : array()), - 'currencySign' => $this->context->currency->sign + 'currencySign' => ($discountInPercent ? '%' : $this->context->currency->sign) )); $this->setTemplate('program.tpl'); } From 81945cef71fe56ad15b2719e3143ae490a97290f Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 24 Oct 2013 10:00:19 +0200 Subject: [PATCH 086/247] [-] FO : Follow up https://github.com/PrestaShop/PrestaShop/pull/879 --- themes/default/authentication.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/default/authentication.tpl b/themes/default/authentication.tpl index de7859286..b8bdf025d 100644 --- a/themes/default/authentication.tpl +++ b/themes/default/authentication.tpl @@ -64,14 +64,14 @@ $(document).ready(function() { }); function vat_number() { - if ($('#company').val() != '') + if (($('#company').length) && ($('#company').val() != '')) $('#vat_number').show(); else $('#vat_number').hide(); } function vat_number_invoice() { - if ($('#company_invoice').val() != '') + if (($('#company_invoice').length) && ($('#company_invoice').val() != '')) $('#vat_number_block_invoice').show(); else $('#vat_number_block_invoice').hide(); From fc9b39968b9ac3fbe039c756ec85f4119c28730e Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 24 Oct 2013 11:46:09 +0200 Subject: [PATCH 087/247] // remove notice --- modules/productscategory/productscategory.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/productscategory/productscategory.tpl b/modules/productscategory/productscategory.tpl index 8b9b9f6cb..409c21e30 100644 --- a/modules/productscategory/productscategory.tpl +++ b/modules/productscategory/productscategory.tpl @@ -23,7 +23,7 @@ * International Registered Trademark & Property of PrestaShop SA *} -{if count($categoryProducts) > 0 && $categoryProducts !== false} +{if isset($categoryProducts) && count($categoryProducts) > 0 && $categoryProducts !== false}

    {$categoryProducts|@count} {l s='other products in the same category:' mod='productscategory'}

    From 971722a13f6215ae57e4b4d635647205f90cec98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 24 Oct 2013 11:51:48 +0200 Subject: [PATCH 088/247] // note updated by ajax in admincustomers should be url encoded --- .../template/controllers/customers/helpers/view/view.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin-dev/themes/default/template/controllers/customers/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/customers/helpers/view/view.tpl index 9a0b01041..a9087d5dc 100644 --- a/admin-dev/themes/default/template/controllers/customers/helpers/view/view.tpl +++ b/admin-dev/themes/default/template/controllers/customers/helpers/view/view.tpl @@ -35,7 +35,7 @@ $.ajax({ type: "POST", url: "index.php", - data: "token={getAdminToken tab='AdminCustomers'}&tab=AdminCustomers&ajax=1&action=updateCustomerNote&id_customer={$customer->id}¬e="+noteContent, + data: "token={getAdminToken tab='AdminCustomers'}&tab=AdminCustomers&ajax=1&action=updateCustomerNote&id_customer={$customer->id}¬e="+encodeURIComponent(noteContent), async : true, success: function(r) { $('#note_feedback').html('').hide(); From 2ffc2962790e8ca0c8b2c4688fdd82dec3c76382 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 24 Oct 2013 12:03:33 +0200 Subject: [PATCH 089/247] FO : https://github.com/PrestaShop/PrestaShop/pull/878 --- themes/default/order-opc-new-account.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/default/order-opc-new-account.tpl b/themes/default/order-opc-new-account.tpl index cd0433f5a..4e31a068c 100644 --- a/themes/default/order-opc-new-account.tpl +++ b/themes/default/order-opc-new-account.tpl @@ -206,7 +206,7 @@ {elseif $field_name eq "address2"}

    - +

    {elseif $field_name eq "postcode"} {$postCodeExist = true} @@ -332,7 +332,7 @@ {$postCodeExist = true}

    - +

    {elseif $field_name eq "city"}

    From ea8a5277f257a3d25ec5fee4d2f59309c882cccd Mon Sep 17 00:00:00 2001 From: indesign47 Date: Thu, 24 Oct 2013 15:44:11 +0200 Subject: [PATCH 090/247] [*] BO : AdminImport add img manufacturers-suppliers --- controllers/admin/AdminImportController.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index ec8c31c92..de6ef7545 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -382,6 +382,7 @@ class AdminImportControllerCore extends AdminController 'meta_title' => array('label' => $this->l('Meta title')), 'meta_keywords' => array('label' => $this->l('Meta keywords')), 'meta_description' => array('label' => $this->l('Meta description')), + 'image' => array('label' => $this->l('Image URL')), 'shop' => array( 'label' => $this->l('ID / Name of group shop'), 'help' => $this->l('Ignore this field if you don\'t use the Multistore tool. If you leave this field empty, the default shop will be used.'), @@ -882,6 +883,12 @@ class AdminImportControllerCore extends AdminController case 'categories': $path = _PS_CAT_IMG_DIR_.(int)$id_entity; break; + case 'manufacturers': + $path = _PS_MANU_IMG_DIR_.(int)$id_entity; + break; + case 'suppliers': + $path = _PS_SUPP_IMG_DIR_.(int)$id_entity; + break; } $url = str_replace(' ', '%20', trim($url)); @@ -2370,6 +2377,11 @@ class AdminImportControllerCore extends AdminController if (!$res) $res = $manufacturer->add(); + //copying images of manufacturer + if (isset($manufacturer->image) && !empty($manufacturer->image)) + if (!AdminImportController::copyImg($manufacturer->id, null, $manufacturer->image, 'manufacturers', !Tools::getValue('regenerate'))) + $this->warnings[] = $manufacturer->image.' '.Tools::displayError('cannot be copied.'); + if ($res) { // Associate supplier to group shop @@ -2443,6 +2455,11 @@ class AdminImportControllerCore extends AdminController if (!$res) $res = $supplier->add(); + //copying images of suppliers + if (isset($supplier->image) && !empty($supplier->image)) + if (!AdminImportController::copyImg($supplier->id, null, $supplier->image, 'suppliers', !Tools::getValue('regenerate'))) + $this->warnings[] = $supplier->image.' '.Tools::displayError('cannot be copied.'); + if (!$res) $this->errors[] = Db::getInstance()->getMsgError().' '.sprintf( Tools::displayError('%1$s (ID: %2$s) cannot be saved'), @@ -3100,4 +3117,4 @@ class AdminImportControllerCore extends AdminController } } } -?> \ No newline at end of file +?> From 4803530eed1ff0e43b124c6f193322e9634c2ae9 Mon Sep 17 00:00:00 2001 From: indesign47 Date: Thu, 24 Oct 2013 15:47:31 +0200 Subject: [PATCH 091/247] [*] BO : AdminImport add img manufacturers --- docs/csv_import/manufacturers_import.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/csv_import/manufacturers_import.csv b/docs/csv_import/manufacturers_import.csv index 6c8ea7cd0..2e4ef5d24 100644 --- a/docs/csv_import/manufacturers_import.csv +++ b/docs/csv_import/manufacturers_import.csv @@ -1,3 +1,3 @@ -id;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description -1;1;Apple Computer, Inc;;;;; -2;1;Shure Incorporated;;;;; \ No newline at end of file +id;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description;Image URL +1;1;Apple Computer, Inc;;;;;http://youdomain.com/img.jpg +2;1;Shure Incorporated;;;;;http://youdomain.com/img.jpg From f0ed5a303ce2acf4e156a2eb0ad4f5857c55114a Mon Sep 17 00:00:00 2001 From: indesign47 Date: Thu, 24 Oct 2013 15:49:56 +0200 Subject: [PATCH 092/247] [*] BO : AdminImport add img suppliers --- docs/csv_import/suppliers_import.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/csv_import/suppliers_import.csv b/docs/csv_import/suppliers_import.csv index db319c908..c02561686 100644 --- a/docs/csv_import/suppliers_import.csv +++ b/docs/csv_import/suppliers_import.csv @@ -1,3 +1,3 @@ -id;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description -1;1;Applestore;;;;; -2;1;Shure Online Store;;;;; \ No newline at end of file +id;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description;Image URL +1;1;Applestore;;;;;http://youdomain.com/img.jpg +2;1;Shure Online Store;;;;;http://youdomain.com/img.jpg From 84454bbc1c7a315e232245c5e43b300b8f153473 Mon Sep 17 00:00:00 2001 From: indesign47 Date: Thu, 24 Oct 2013 16:16:29 +0200 Subject: [PATCH 093/247] [*] BO : AdminImport add img manufacturers-suppliers --- .../default/template/controllers/import/helpers/form/form.tpl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl index 181508404..223545e2d 100644 --- a/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl +++ b/admin-dev/themes/default/template/controllers/import/helpers/form/form.tpl @@ -227,6 +227,10 @@ $(".import_products_categories, label[for=regenerate], #regenerate").show(); else $(".import_products_categories, label[for=regenerate], #regenerate").hide(); + if ($("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6) + $("label[for=regenerate], #regenerate").show() + else + $("label[for=regenerate], #regenerate").hide(); if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 3 || $("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6 || $("#entity > option:selected").val() == 7) $("label[for=forceIDs], #forceIDs").show(); else From 3cd702da4223b9e58f95f47f7940fe33e42781f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 24 Oct 2013 16:30:02 +0200 Subject: [PATCH 094/247] [-] WS: Fix stockavailables list when stock is shared between shops #PSCFV-10793 --- classes/ObjectModel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/ObjectModel.php b/classes/ObjectModel.php index 3dd0072b6..0c70cbf3c 100644 --- a/classes/ObjectModel.php +++ b/classes/ObjectModel.php @@ -1139,7 +1139,7 @@ abstract class ObjectModelCore { $vars = get_class_vars($class_name); foreach ($vars['shopIDs'] as $id_shop) - $or[] = ' main.id_shop = '.(int)$id_shop.' '; + $or[] = '(main.id_shop = '.(int)$id_shop.(isset($this->def['fields']['id_shop_group']) ? ' OR (id_shop = 0 AND id_shop_group='.(int)Shop::getGroupFromShop((int)$id_shop).')' : '').')'; $prepend = ''; if (count($or)) @@ -1658,4 +1658,4 @@ abstract class ObjectModelCore { $this->update_fields = $fields; } -} \ No newline at end of file +} From c5324a653b0efc3cdb6a1706ce868578b1f83347 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 24 Oct 2013 16:31:50 +0200 Subject: [PATCH 095/247] [-] IN: Fix bug #PSCFV-10644 no carrier available after upgrade from 1.4.x --- .../php/update_customer_default_group.php | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/install-dev/upgrade/php/update_customer_default_group.php b/install-dev/upgrade/php/update_customer_default_group.php index 03bb77b6c..9ce468a41 100644 --- a/install-dev/upgrade/php/update_customer_default_group.php +++ b/install-dev/upgrade/php/update_customer_default_group.php @@ -39,9 +39,27 @@ function update_customer_default_group() $str_old = 'define(\'_PS_DEFAULT_CUSTOMER_GROUP_\', '.(int)_PS_DEFAULT_CUSTOMER_GROUP_.');'; $str_new = 'define(\'_PS_DEFAULT_CUSTOMER_GROUP_\', '.(int)$ps_customer_group.');'; $content = str_replace($str_old, $str_new, $content); + + $carriers = Db::getInstance()->executeS(' + SELECT `id_carrier` + FROM `'._DB_PREFIX_.'carrier` + WHERE `deleted` = 0'); + + $groups = Db::getInstance()->executeS(' + SELECT `value` as id_group + FROM `'._DB_PREFIX_.'configuration` + WHERE `name` IN (\'PS_UNIDENTIFIED_GROUP\', \'PS_GUEST_GROUP\')'); + $result = false; + if (count($carriers) && is_array($carriers) && count($groups) && is_array($groups)) + foreach ($carriers as $carrier) + foreach ($groups as $group) + Db::getInstance()->execute(' + INSERT IGNORE INTO `'._DB_PREFIX_.'carrier_group` + VALUES ('.(int)$carrier['id_carrier'].', '.(int)$group['id_group'].')'); + if(file_exists($filename) && is_writable($filename)) - $result = (bool)@file_put_contents($filename, $content); + $result &= (bool)@file_put_contents($filename, $content); if($result === true && file_exists($filename) && file_exists($filename_old)) { @unlink($filename_old); From c516035e0e3030db0e8df98eb1c3f018cfdf0881 Mon Sep 17 00:00:00 2001 From: PhpMadman Date: Thu, 24 Oct 2013 17:19:28 +0200 Subject: [PATCH 096/247] [-] BO : fix #PSCFV-10728, prices incorrectly formatted when creating new order from BO --- .../template/controllers/orders/form.tpl | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/orders/form.tpl b/admin-dev/themes/default/template/controllers/orders/form.tpl index 6e4597092..e151b8a8a 100755 --- a/admin-dev/themes/default/template/controllers/orders/form.tpl +++ b/admin-dev/themes/default/template/controllers/orders/form.tpl @@ -715,6 +715,20 @@ $('#payment_list').html(payment_list); } + function fixPriceFormat(price) + { + if(price.indexOf(',') > 0 && price.indexOf('.') > 0) // if contains , and . + { + if(price.indexOf(',') < price.indexOf('.')) // if , is before . + { + price = price.replace(',',''); // remove , + } + } + price = price.replace(' ',''); // remove any spaces + price = price.replace(',','.'); // remove , if price did not cotain both , and . + return price; + } + function displaySummary(jsonSummary) { currency_format = jsonSummary.currency.format; @@ -750,13 +764,13 @@ if (!changed_shipping_price) $('#shipping_price').html('' + formatCurrency(parseFloat(jsonSummary.summary.total_shipping), currency_format, currency_sign, currency_blank) + ''); shipping_price_selected_carrier = jsonSummary.summary.total_shipping; - - $('#total_vouchers').html(formatCurrency(parseFloat(jsonSummary.summary.total_discounts_tax_exc.replace(',', '.')), currency_format, currency_sign, currency_blank)); - $('#total_shipping').html(formatCurrency(parseFloat(jsonSummary.summary.total_shipping_tax_exc.replace(',', '.')), currency_format, currency_sign, currency_blank)); - $('#total_taxes').html(formatCurrency(parseFloat(jsonSummary.summary.total_tax.replace(',', '.')), currency_format, currency_sign, currency_blank)); - $('#total_without_taxes').html(formatCurrency(parseFloat(jsonSummary.summary.total_price_without_tax.replace(',', '.')), currency_format, currency_sign, currency_blank)); - $('#total_with_taxes').html(formatCurrency(parseFloat(jsonSummary.summary.total_price.replace(',', '.')), currency_format, currency_sign, currency_blank)); - $('#total_products').html(formatCurrency(parseFloat(jsonSummary.summary.total_products.replace(',', '.')), currency_format, currency_sign, currency_blank)); + + $('#total_vouchers').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_discounts_tax_exc)), currency_format, currency_sign, currency_blank)); + $('#total_shipping').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_shipping_tax_exc)), currency_format, currency_sign, currency_blank)); + $('#total_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_tax)), currency_format, currency_sign, currency_blank)); + $('#total_without_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_price_without_tax)), currency_format, currency_sign, currency_blank)); + $('#total_with_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_price)), currency_format, currency_sign, currency_blank)); + $('#total_products').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_products)), currency_format, currency_sign, currency_blank)); id_currency = jsonSummary.cart.id_currency; $('#id_currency option').removeAttr('selected'); $('#id_currency option[value="'+id_currency+'"]').attr('selected', true); From cc3363011ed3419e5bc3301281a4109f9477af97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 24 Oct 2013 17:54:44 +0200 Subject: [PATCH 097/247] // rewrited urls for feeder module --- modules/feeder/rss.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/feeder/rss.php b/modules/feeder/rss.php index caa32a3c8..046650c4e 100644 --- a/modules/feeder/rss.php +++ b/modules/feeder/rss.php @@ -26,6 +26,9 @@ include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); +if (!Module::getInstanceByName('feeder')->active) + exit; + // Get data $number = ((int)(Tools::getValue('n')) ? (int)(Tools::getValue('n')) : 10); $orderBy = Tools::getProductsOrder('by', Tools::getValue('orderby')); @@ -64,7 +67,7 @@ echo ''."\n"; if (is_array($image) AND sizeof($image)) { $imageObj = new Image($image[0]['id_image']); - echo "getExistingImgPath()."-small_default.jpg' title='".str_replace('&', '', $product['name'])."' alt='thumb' />"; + echo "getImageLink($product['link_rewrite'], $image[0]['id_image'], 'small_default')."' title='".str_replace('&', '', $product['name'])."' alt='thumb' />"; $cdata = false; } if ($cdata) @@ -76,4 +79,4 @@ echo ''."\n"; } ?> - + \ No newline at end of file From 759fe2f67101552df4de0a38164f391a88ea7afc Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 24 Oct 2013 18:09:21 +0200 Subject: [PATCH 098/247] // norms --- admin-dev/themes/default/template/controllers/orders/form.tpl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/orders/form.tpl b/admin-dev/themes/default/template/controllers/orders/form.tpl index e151b8a8a..28759ec10 100755 --- a/admin-dev/themes/default/template/controllers/orders/form.tpl +++ b/admin-dev/themes/default/template/controllers/orders/form.tpl @@ -718,12 +718,8 @@ function fixPriceFormat(price) { if(price.indexOf(',') > 0 && price.indexOf('.') > 0) // if contains , and . - { if(price.indexOf(',') < price.indexOf('.')) // if , is before . - { price = price.replace(',',''); // remove , - } - } price = price.replace(' ',''); // remove any spaces price = price.replace(',','.'); // remove , if price did not cotain both , and . return price; From 8cb1806e49738087309a977f92279b85b95ecb40 Mon Sep 17 00:00:00 2001 From: indesign47 Date: Thu, 24 Oct 2013 18:13:05 +0200 Subject: [PATCH 099/247] // small fixes for Width Height Depth change 0,1;0,2;0,3 to 1,2,3 --- docs/csv_import/products_import.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/csv_import/products_import.csv b/docs/csv_import/products_import.csv index 2475bab46..2952a2f05 100644 --- a/docs/csv_import/products_import.csv +++ b/docs/csv_import/products_import.csv @@ -1,3 +1,3 @@ ID;Active (0/1);Name*;Categories (x,y,z,…);Price tax excl. Or Price tax excl;Tax rules id;Wholesale price;On sale (0/1);Discount amount;Discount percent;Discount from (yyy-mm-dd);Discount to (yyy-mm-dd);Reference #;Supplier reference #;Supplier;Manufacturer;EAN13;UPC;Ecotax;Width;Height;Depth;Weight;Quantity;Minimum quantity;Visibility;Additional shipping cost;Unity;Unity price ratio;Short description;Description;Tags (x,y,z,...);Meta-title;Meta-keywords;Meta-description;URL rewritten;Text when in-stock;Text if back-order allowed;Available for order (0 = No, 1 = Yes);Product available date;Product creation date;Show price (0 = No, 1 = Yes);Image URLs (x,y,z,...);Delete existing images (0 = No, 1 = Yes);Feature (Name:Value:Position);Available online only (0 = No, 1 = Yes);Condition (new,used,refurbished);Customizable;File fields;Text fields;Out of stock;Advanced stock management;ID / Name of shop -1;1;iPod Nano;Home, iPods;49;1;40;0;;;;;92458844;54778855;AppleStore;Apple Computer, Inc;5605055055056;560505505555;0;0,1;0,2;0,3;0.5;800;1;both;0.00;;0.00;New design. New features. Now i….;Curved ahead of the curve. For those about to rock, we give you nine amazing colors. But that's only part of the story. Feel the curved, all-aluminum and glass de...;apple, ipod, nano;Meta title;Meta keywords;Meta description;ipod-nano;In stock;Out stock;1;;;1;http://youdomain.com/img.jpg, http://yourdomain.com/img1.jpg;0;Music:Rock:1;0;new;0;0;0;2;0;1 -2;1;iPod shuffle;Home, iPods;66.05;1;50;0;;;;;92458845;54778855;AppleStore;Apple Computer, Inc;5605055055057;560505505556;0;0,1;0,2;0,3;0.5;800;1;both;0.00;;0.00;iPod shuffle, the world’s most wearabl….;You want listen to music;ipod, shuffle;Meta title;Meta keywords;Meta description;ipod-shuffle;In stock;Out stock;1;;;1;http://youdomain.com/img25.jpg, http://yourdomain.com/img30.jpg;0;Music:Blues:2;0;new;0;0;0;2;0;1 +1;1;iPod Nano;Home, iPods;49;1;40;0;;;;;92458844;54778855;AppleStore;Apple Computer, Inc;5605055055056;560505505555;0;1;2;3;0.5;800;1;both;0.00;;0.00;New design. New features. Now i….;Curved ahead of the curve. For those about to rock, we give you nine amazing colors. But that's only part of the story. Feel the curved, all-aluminum and glass de...;apple, ipod, nano;Meta title;Meta keywords;Meta description;ipod-nano;In stock;Out stock;1;;;1;http://youdomain.com/img.jpg, http://yourdomain.com/img1.jpg;0;Music:Rock:1;0;new;0;0;0;2;0;1 +2;1;iPod shuffle;Home, iPods;66.05;1;50;0;;;;;92458845;54778855;AppleStore;Apple Computer, Inc;5605055055057;560505505556;0;1;2;3;0.5;800;1;both;0.00;;0.00;iPod shuffle, the world’s most wearabl….;You want listen to music;ipod, shuffle;Meta title;Meta keywords;Meta description;ipod-shuffle;In stock;Out stock;1;;;1;http://youdomain.com/img25.jpg, http://yourdomain.com/img30.jpg;0;Music:Blues:2;0;new;0;0;0;2;0;1 From 6f57093f50b8a0fe783dfb226540c9c49f114929 Mon Sep 17 00:00:00 2001 From: Jerome Nadaud Date: Thu, 24 Oct 2013 18:36:36 +0200 Subject: [PATCH 100/247] [-] BO : FixBug #PSCFV-10600 - Unmatched Boundary with mod_security --- .../default/template/controllers/modules/favorites.tpl | 4 ++-- .../template/controllers/modules_positions/list_modules.tpl | 2 +- .../template/controllers/orders/helpers/view/view.tpl | 2 +- .../default/template/controllers/products/associations.tpl | 4 ++-- .../default/template/controllers/products/combinations.tpl | 2 +- .../themes/default/template/controllers/products/prices.tpl | 2 +- .../template/controllers/referrers/helpers/view/view.tpl | 2 +- admin-dev/themes/default/template/helpers/form/form.tpl | 2 +- .../themes/default/template/helpers/list/list_header.tpl | 4 ++-- classes/AdminTab.php | 4 ++-- install-dev/dev/translate.php | 2 +- js/tiny_mce/plugins/advlink/js/advlink.js | 4 ++-- js/tiny_mce/plugins/media/js/media.js | 2 +- js/tiny_mce/themes/advanced/skins/o2k7/advlink.js | 4 ++-- js/tiny_mce/themes/advanced/skins/o2k7/media.js | 2 +- modules/importerosc/importerosc.php | 4 ++-- modules/productcomments/productcomments.php | 2 +- modules/shopimporter/shopimporter.php | 2 +- modules/statsstock/statsstock.php | 2 +- modules/watermark/config.xml | 2 +- themes/default/mobile/contact-form.tpl | 6 +++--- 21 files changed, 30 insertions(+), 30 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/modules/favorites.tpl b/admin-dev/themes/default/template/controllers/modules/favorites.tpl index 13efe0e73..911c3dd28 100755 --- a/admin-dev/themes/default/template/controllers/modules/favorites.tpl +++ b/admin-dev/themes/default/template/controllers/modules/favorites.tpl @@ -59,14 +59,14 @@ {$module->categoryName} diff --git a/admin-dev/themes/default/template/controllers/modules_positions/list_modules.tpl b/admin-dev/themes/default/template/controllers/modules_positions/list_modules.tpl index 623e83dde..a10cf1145 100644 --- a/admin-dev/themes/default/template/controllers/modules_positions/list_modules.tpl +++ b/admin-dev/themes/default/template/controllers/modules_positions/list_modules.tpl @@ -37,7 +37,7 @@ {l s='Show'} : - + {foreach from=$orderMessages item=orderMessage} {/foreach} diff --git a/admin-dev/themes/default/template/controllers/products/associations.tpl b/admin-dev/themes/default/template/controllers/products/associations.tpl index 71a1d1f53..862d779fa 100644 --- a/admin-dev/themes/default/template/controllers/products/associations.tpl +++ b/admin-dev/themes/default/template/controllers/products/associations.tpl @@ -103,11 +103,11 @@     {l s='Create new manufacturer'} diff --git a/admin-dev/themes/default/template/controllers/products/combinations.tpl b/admin-dev/themes/default/template/controllers/products/combinations.tpl index b6a3e450e..e571f0125 100644 --- a/admin-dev/themes/default/template/controllers/products/combinations.tpl +++ b/admin-dev/themes/default/template/controllers/products/combinations.tpl @@ -85,7 +85,7 @@ From 9660cef0aad55f93568616c775d163add5a6dffe Mon Sep 17 00:00:00 2001 From: Jerome Nadaud Date: Tue, 29 Oct 2013 09:58:42 +0100 Subject: [PATCH 129/247] [-] MO : mailalert - Fix deprecated warning on displayDate --- modules/mailalerts/mailalerts.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mailalerts/mailalerts.php b/modules/mailalerts/mailalerts.php index 485240d43..4dc9f0554 100644 --- a/modules/mailalerts/mailalerts.php +++ b/modules/mailalerts/mailalerts.php @@ -287,7 +287,7 @@ class MailAlerts extends Module $configuration = Configuration::getMultiple(array('PS_SHOP_EMAIL', 'PS_MAIL_METHOD', 'PS_MAIL_SERVER', 'PS_MAIL_USER', 'PS_MAIL_PASSWD', 'PS_SHOP_NAME', 'PS_MAIL_COLOR'), $id_lang, null, $id_shop); $delivery = new Address((int)$order->id_address_delivery); $invoice = new Address((int)$order->id_address_invoice); - $order_date_text = Tools::displayDate($order->date_add, (int)$id_lang); + $order_date_text = Tools::displayDate($order->date_add); $carrier = new Carrier((int)$order->id_carrier); $message = $this->getAllMessages($order->id); From 1d90218e0db6051b8ab9d0f6ae6e99b0991f3db3 Mon Sep 17 00:00:00 2001 From: Jerome Nadaud Date: Tue, 29 Oct 2013 10:00:57 +0100 Subject: [PATCH 130/247] // Update mailalert module version --- modules/mailalerts/config.xml | 2 +- modules/mailalerts/mailalerts.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mailalerts/config.xml b/modules/mailalerts/config.xml index d01df2961..5cf97756c 100755 --- a/modules/mailalerts/config.xml +++ b/modules/mailalerts/config.xml @@ -2,7 +2,7 @@ mailalerts - + diff --git a/modules/mailalerts/mailalerts.php b/modules/mailalerts/mailalerts.php index 4dc9f0554..c622d8f97 100644 --- a/modules/mailalerts/mailalerts.php +++ b/modules/mailalerts/mailalerts.php @@ -46,7 +46,7 @@ class MailAlerts extends Module { $this->name = 'mailalerts'; $this->tab = 'administration'; - $this->version = '2.5'; + $this->version = '2.6'; $this->author = 'PrestaShop'; $this->need_instance = 0; From 2b67d7072ce14e5e640c2d20d47dbd1140fb83d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 29 Oct 2013 10:18:29 +0100 Subject: [PATCH 131/247] // type of logger field --- .../ajaxfilemanager/ajax_file_upload.php | 20 ++++++------------- .../ajaxfilemanager/ajax_get_file_listing.php | 3 ++- classes/Logger.php | 2 +- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/admin-dev/ajaxfilemanager/ajax_file_upload.php b/admin-dev/ajaxfilemanager/ajax_file_upload.php index b21a39c13..c942991ed 100755 --- a/admin-dev/ajaxfilemanager/ajax_file_upload.php +++ b/admin-dev/ajaxfilemanager/ajax_file_upload.php @@ -22,26 +22,18 @@ $upload->setInvalidFileExt(explode(",", CONFIG_UPLOAD_INVALID_EXTS)); if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD) - { $error = SYS_DISABLED; - } elseif(empty($_GET['folder']) || !isUnderRoot($_GET['folder'])) - { $error = ERR_FOLDER_PATH_NOT_ALLOWED; - }else if(!$upload->isFileUploaded('file')) - { + elseif (!$upload->isFileUploaded('file')) $error = ERR_FILE_NOT_UPLOADED; - }else if(!$upload->moveUploadedFile($_GET['folder'])) - { - $error = ERR_FILE_MOVE_FAILED; - } - elseif(!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS))) - { + elseif (!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS))) $error = ERR_FILE_TYPE_NOT_ALLOWED; - }elseif(defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE)) - { + elseif (defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE)) $error = sprintf(ERROR_FILE_TOO_BID, transformFileSize(CONFIG_UPLOAD_MAXSIZE)); - }else + elseif (!$upload->moveUploadedFile($_GET['folder'])) + $error = ERR_FILE_MOVE_FAILED; + else { include_once(CLASS_FILE); $path = $upload->getFilePath(); diff --git a/admin-dev/ajaxfilemanager/ajax_get_file_listing.php b/admin-dev/ajaxfilemanager/ajax_get_file_listing.php index c72110344..bb85caada 100755 --- a/admin-dev/ajaxfilemanager/ajax_get_file_listing.php +++ b/admin-dev/ajaxfilemanager/ajax_get_file_listing.php @@ -24,7 +24,8 @@ if(!empty($_GET['search'])) { include_once(CLASS_SEARCH); - + if (!preg_match('/^'.Tools::pRegexp(realpath(dirname(__FILE__).'/'.$_GET['search_folder']), '/').'/i', _PS_ROOT_DIR_.'/img/cms')) + exit; $search = new Search($_GET['search_folder']); $search->addSearchKeyword('recursive', @$_GET['search_recursively']); $search->addSearchKeyword('mtime_from', @$_GET['search_mtime_from']); diff --git a/classes/Logger.php b/classes/Logger.php index ff7fb994d..f6dc77a3d 100644 --- a/classes/Logger.php +++ b/classes/Logger.php @@ -62,7 +62,7 @@ class LoggerCore extends ObjectModel 'fields' => array( 'severity' => array('type' => self::TYPE_INT, 'validate' => 'isInt', 'required' => true), 'error_code' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), - 'message' => array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'required' => true), + 'message' => array('type' => self::TYPE_STRING, 'validate' => 'isString', 'required' => true), 'object_id' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), 'id_employee' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), 'object_type' => array('type' => self::TYPE_STRING, 'validate' => 'isName'), From d2e475dd3a19b637fc6690a6efca6062fffc2214 Mon Sep 17 00:00:00 2001 From: Jerome Nadaud Date: Tue, 29 Oct 2013 10:30:59 +0100 Subject: [PATCH 132/247] // Removed line from merge --- modules/mailalerts/config.xml | 2 +- modules/mailalerts/mailalerts.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/mailalerts/config.xml b/modules/mailalerts/config.xml index 5cf97756c..98984a992 100755 --- a/modules/mailalerts/config.xml +++ b/modules/mailalerts/config.xml @@ -2,7 +2,7 @@ mailalerts - + diff --git a/modules/mailalerts/mailalerts.php b/modules/mailalerts/mailalerts.php index c622d8f97..57ed8cb91 100644 --- a/modules/mailalerts/mailalerts.php +++ b/modules/mailalerts/mailalerts.php @@ -46,7 +46,7 @@ class MailAlerts extends Module { $this->name = 'mailalerts'; $this->tab = 'administration'; - $this->version = '2.6'; + $this->version = '2.7'; $this->author = 'PrestaShop'; $this->need_instance = 0; @@ -393,6 +393,7 @@ class MailAlerts extends Module '{total_products}' => Tools::displayPrice($order->getTotalProductsWithTaxes(), $currency), '{total_discounts}' => Tools::displayPrice($order->total_discounts, $currency), '{total_shipping}' => Tools::displayPrice($order->total_shipping, $currency), + '{total_tax_paid}' => Tools::displayPrice(($order->total_products_wt - $order->total_products) + ($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $currency, false), '{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $currency), '{currency}' => $currency->sign, '{message}' => $message From 07222be5dd11369df5016234888cdccd87812763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 29 Oct 2013 10:53:00 +0100 Subject: [PATCH 133/247] // demo mode on ajaxfilemanager --- admin-dev/ajaxfilemanager/inc/config.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/admin-dev/ajaxfilemanager/inc/config.php b/admin-dev/ajaxfilemanager/inc/config.php index 2f30ed245..09b4e4200 100755 --- a/admin-dev/ajaxfilemanager/inc/config.php +++ b/admin-dev/ajaxfilemanager/inc/config.php @@ -10,6 +10,9 @@ //FILESYSTEM CONFIG
    require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "class.auth.php"); + if (_PS_MODE_DEMO_) + die('This functionality has been disabled.'); + define('CONFIG_QUERY_STRING_ENABLE', true); //Enable passed query string to setting the system configuration if(!isset($_SESSION)) { From af61191a7ef903a2869a25120e671532e021b9f8 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 29 Oct 2013 10:55:46 +0100 Subject: [PATCH 134/247] // rename field Action when out of stock --- controllers/admin/AdminImportController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/admin/AdminImportController.php b/controllers/admin/AdminImportController.php index de6ef7545..39da4ccab 100644 --- a/controllers/admin/AdminImportController.php +++ b/controllers/admin/AdminImportController.php @@ -253,7 +253,7 @@ class AdminImportControllerCore extends AdminController 'customizable' => array('label' => $this->l('Customizable (0 = No, 1 = Yes)')), 'uploadable_files' => array('label' => $this->l('Uploadable files (0 = No, 1 = Yes)')), 'text_fields' => array('label' => $this->l('Text fields (0 = No, 1 = Yes)')), - 'out_of_stock' => array('label' => $this->l('Out_of_stock')), + 'out_of_stock' => array('label' => $this->l('Action when out of stock')), 'advanced_stock_management' => array('label' => $this->l('Advanced stock management')), 'shop' => array( 'label' => $this->l('ID / Name of shop'), From 1bee84d26cd8daa43e06806f9679dde2e831d035 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 29 Oct 2013 10:57:33 +0100 Subject: [PATCH 135/247] [-] BO : Do not delete other default jpg when _deleteOldImages and type defined --- controllers/admin/AdminImagesController.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/controllers/admin/AdminImagesController.php b/controllers/admin/AdminImagesController.php index 922fcf050..9a1e2dd9a 100644 --- a/controllers/admin/AdminImagesController.php +++ b/controllers/admin/AdminImagesController.php @@ -438,10 +438,11 @@ class AdminImagesControllerCore extends AdminController if (!is_dir($dir)) return false; $toDel = scandir($dir); + foreach ($toDel as $d) foreach ($type as $imageType) - if (preg_match('/^[0-9]+\-'.($product ? '[0-9]+\-' : '').$imageType['name'].'\.jpg$/', $d) || preg_match('/^([[:lower:]]{2})\-default\-(.*)\.jpg$/', $d)) - if (file_exists($dir.$d)) + if (preg_match('/^[0-9]+\-'.($product ? '[0-9]+\-' : '').$imageType['name'].'\.jpg$/', $d) || preg_match('/^([[:lower:]]{2})\-default\-'.$imageType['name'].'\.jpg$/', $d)) + if (file_exists($dir.$d)) unlink($dir.$d); // delete product images using new filesystem. From d4096142225e76d02394927be3ad0396465df340 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Tue, 29 Oct 2013 11:18:53 +0100 Subject: [PATCH 136/247] [-] FO : CustomerMessage ip_address to string --- classes/CustomerMessage.php | 2 +- install-dev/upgrade/sql/1.5.6.1.sql | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 install-dev/upgrade/sql/1.5.6.1.sql diff --git a/classes/CustomerMessage.php b/classes/CustomerMessage.php index ae8709d5b..18291b3ac 100644 --- a/classes/CustomerMessage.php +++ b/classes/CustomerMessage.php @@ -46,7 +46,7 @@ class CustomerMessageCore extends ObjectModel 'fields' => array( 'id_employee' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'id_customer_thread' => array('type' => self::TYPE_INT), - 'ip_address' => array('type' => self::TYPE_INT, 'validate' => 'isIp2Long'), + 'ip_address' => array('type' => self::TYPE_STRING, 'validate' => 'isIp2Long', 'size' => 15), 'message' => array('type' => self::TYPE_STRING, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 65000), 'file_name' => array('type' => self::TYPE_STRING), 'user_agent' => array('type' => self::TYPE_STRING), diff --git a/install-dev/upgrade/sql/1.5.6.1.sql b/install-dev/upgrade/sql/1.5.6.1.sql new file mode 100644 index 000000000..435bb1009 --- /dev/null +++ b/install-dev/upgrade/sql/1.5.6.1.sql @@ -0,0 +1 @@ +ALTER TABLE `PREFIX_customer_message` CHANGE `ip_address` `ip_address` VARCHAR( 15 ) NULL DEFAULT NULL; \ No newline at end of file From 580e201c48cee8214bb997e86dd18c3e2db961b8 Mon Sep 17 00:00:00 2001 From: Jerome Nadaud Date: Tue, 29 Oct 2013 11:38:48 +0100 Subject: [PATCH 137/247] [-] BO : FixBug #PSCFV-9319 - display only valid order id --- .../controllers/customer_threads/message.tpl | 35 ++++++++++--------- .../admin/AdminCustomerThreadsController.php | 9 ++++- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/customer_threads/message.tpl b/admin-dev/themes/default/template/controllers/customer_threads/message.tpl index 533d12610..a181a2f79 100644 --- a/admin-dev/themes/default/template/controllers/customer_threads/message.tpl +++ b/admin-dev/themes/default/template/controllers/customer_threads/message.tpl @@ -57,14 +57,14 @@

    {l s='Sent on:'}
    -
    {$message.date_add}
    +
    {$message.date_add} 
    {if empty($message.id_employee)}
    {l s='Browser:'}
    -
    {$message.user_agent}
    +
    {$message.user_agent} 
    {/if} @@ -79,34 +79,35 @@ {/if} - {if !empty($message.id_order) && empty($message.id_employee)} + {if !empty($message.id_order) && $is_valid_order_id && empty($message.id_employee)}
    {l s='Order #'}
    -
    - {$message.id_order} {l s='View'} -
    +
    {$message.id_order} {l s='View'} +
    {/if} {if !empty($message.id_product) && empty($message.id_employee)}
    {l s='Product #'}
    -
    - {$message.id_product} {l s='View'} -
    +
    {$message.id_product} {l s='View'}
    {/if}
    - {l s='Subject:'} - +
    +
    {l s='Subject:'}
    +
    + +
    +
    diff --git a/controllers/admin/AdminCustomerThreadsController.php b/controllers/admin/AdminCustomerThreadsController.php index c53945a5b..da3f4b15c 100644 --- a/controllers/admin/AdminCustomerThreadsController.php +++ b/controllers/admin/AdminCustomerThreadsController.php @@ -605,6 +605,12 @@ class AdminCustomerThreadsControllerCore extends AdminController ENT_QUOTES, 'UTF-8') ); + $is_valid_order_id = true; + $order = new Order((int)$message['id_order']); + + if (!Validate::isLoadedObject($order)) + $is_valid_order_id = false; + $tpl->assign(array( 'current' => self::$currentIndex, 'token' => $this->token, @@ -615,7 +621,8 @@ class AdminCustomerThreadsControllerCore extends AdminController 'PS_SHOP_NAME' => Configuration::get('PS_SHOP_NAME'), 'file_name' => file_exists(_PS_UPLOAD_DIR_.$message['file_name']), 'contacts' => $contacts, - 'PS_CUSTOMER_SERVICE_SIGNATURE' => str_replace('\r\n', "\n", Configuration::get('PS_CUSTOMER_SERVICE_SIGNATURE', $message['id_lang'])) + 'PS_CUSTOMER_SERVICE_SIGNATURE' => str_replace('\r\n', "\n", Configuration::get('PS_CUSTOMER_SERVICE_SIGNATURE', $message['id_lang'])), + 'is_valid_order_id' => $is_valid_order_id )); return $tpl->fetch(); From b605f33359a1819c56f32ab82bd83660f1095626 Mon Sep 17 00:00:00 2001 From: Jerome Nadaud Date: Tue, 29 Oct 2013 12:07:30 +0100 Subject: [PATCH 138/247] [-] BO : FixBug #PSCFV-10866 - Tagify system not working --- .../controllers/products/informations.tpl | 13 ++++++++++++- .../default/template/helpers/form/form.tpl | 4 ++-- admin-dev/themes/default/template/toolbar.tpl | 2 +- controllers/admin/AdminProductsController.php | 17 +++++++++-------- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/products/informations.tpl b/admin-dev/themes/default/template/controllers/products/informations.tpl index 0b56c1d73..847911f7f 100644 --- a/admin-dev/themes/default/template/controllers/products/informations.tpl +++ b/admin-dev/themes/default/template/controllers/products/informations.tpl @@ -375,8 +375,19 @@ {foreach from=$languages item=language}
    + {literal} + + {/literal} + value="{$product->getTags($language.id_lang, true)|htmlentitiesUTF8}" class="tagify" /> {l s='Forbidden characters:'} !<;>;?=+#"°{}_$% 
    {/foreach} diff --git a/admin-dev/themes/default/template/helpers/form/form.tpl b/admin-dev/themes/default/template/helpers/form/form.tpl index 8593f7542..888813d50 100644 --- a/admin-dev/themes/default/template/helpers/form/form.tpl +++ b/admin-dev/themes/default/template/helpers/form/form.tpl @@ -68,7 +68,7 @@ + + {include file="footer_toolbar.tpl"}
    -
    - {if $currentObject->id}{/if} - -
    -

    {l s='Cart rule information'}

    - {include file='controllers/cart_rules/informations.tpl'} - {include file="footer_toolbar.tpl"} -
    -
    -

    {l s='Cart rule conditions'}

    - {include file='controllers/cart_rules/conditions.tpl'} - {include file="footer_toolbar.tpl"} -
    -
    -

    {l s='Cart rule actions'}

    - {include file='controllers/cart_rules/actions.tpl'} - {include file="footer_toolbar.tpl"} -
    - - -
    - - - - diff --git a/admin-dev/themes/default/template/controllers/cart_rules/product_rule.tpl b/admin-dev/themes/default/template/controllers/cart_rules/product_rule.tpl index 9c5d80438..f6267166a 100644 --- a/admin-dev/themes/default/template/controllers/cart_rules/product_rule.tpl +++ b/admin-dev/themes/default/template/controllers/cart_rules/product_rule.tpl @@ -1,7 +1,7 @@ - - {l s='Remove'} + + @@ -17,8 +17,9 @@ - - {l s='Choose'} {l s='Choose'} + + + {l s='Choose'}
    diff --git a/admin-dev/themes/default/template/controllers/cart_rules/product_rule_group.tpl b/admin-dev/themes/default/template/controllers/cart_rules/product_rule_group.tpl index 8e9fad2dd..17f59b9dd 100644 --- a/admin-dev/themes/default/template/controllers/cart_rules/product_rule_group.tpl +++ b/admin-dev/themes/default/template/controllers/cart_rules/product_rule_group.tpl @@ -1,36 +1,59 @@ - - - {l s='Remove'} + + + - - - {l s='The cart must contain at least'} - - {l s='Product(s) matching the following rules:'} -
    - - {l s='Add'} - {l s='Add a rule concerning'} - - - - - - + \ No newline at end of file diff --git a/admin-dev/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl b/admin-dev/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl index a5460ad98..b1c6d5c83 100644 --- a/admin-dev/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl +++ b/admin-dev/themes/default/template/controllers/cart_rules/product_rule_itemlist.tpl @@ -1,46 +1,28 @@ -
    + + +
    + +
    + + + {l s='Product(s) matching the following rules:'} + + + +
    +
    + + + +
    + + +
    + + + + {l s="Add"} + +
    + +
    + + + + + + + + {if isset($product_rules) && $product_rules|@count} {foreach from=$product_rules item='product_rule'} {$product_rule} {/foreach} {/if}
    +
    - - - - -
    -

    {l s='Unselected'}

    -

    - - {l s='Add'} >> - -
    -

    {l s='Selected'}

    -

    - - << {l s='Remove'} - -
    - +
    + {l s='Unselected'} + + + {l s='Add'} + + +
    +
    + {l s='Selected'} + + + + {l s='Remove'} + +
    +
    +{/if} diff --git a/modules/blockcategories/config.xml b/modules/blockcategories/config.xml index 65a8cb054..9ac800949 100755 --- a/modules/blockcategories/config.xml +++ b/modules/blockcategories/config.xml @@ -1,9 +1,9 @@ blockcategories - - - + + + 1 diff --git a/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl b/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl index d2e0e05f8..86acc7807 100644 --- a/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl +++ b/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl @@ -24,8 +24,9 @@ *} +{if $blockCategTree && $blockCategTree.children|@count}
    -

    {l s='Categories' mod='blockcategories'}

    +

    {if isset($currentCategory)}{$currentCategory->name|escape}{else}{l s='Categories' mod='blockcategories'}{/if}

      {foreach from=$blockCategTree.children item=child name=blockCategTree} @@ -45,4 +46,5 @@
    +{/if} From f9dc0b02527adba443b5a470d5a57e1641c0fbfc Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 31 Oct 2013 14:20:21 +0100 Subject: [PATCH 181/247] [-] MO : Could not translate in transit mail, revert from https://github.com/viger-creator/PrestaShop/commit/3213b5dffb266ddb0639b94f72babd892328ffa2 --- controllers/admin/AdminOrdersController.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 93e5a1f8e..cbb6552a3 100755 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -306,7 +306,7 @@ class AdminOrdersControllerCore extends AdminController '{shipping_number}' => $order->shipping_number, '{order_name}' => $order->getUniqReference() ); - if (@Mail::Send((int)$order->id_lang, 'in_transit', Mail::l('Package in transit'), $templateVars, + if (@Mail::Send((int)$order->id_lang, 'in_transit', Mail::l('Package in transit', (int)$order->id_lang), $templateVars, $customer->email, $customer->firstname.' '.$customer->lastname, null, null, null, null, _PS_MAIL_DIR_, true, (int)$order->id_shop)) { @@ -704,7 +704,7 @@ class AdminOrdersControllerCore extends AdminController @Mail::Send( (int)$order->id_lang, 'credit_slip', - Mail::l('New credit slip regarding your order', $order->id_lang), + Mail::l('New credit slip regarding your order', (int)$order->id_lang), $params, $customer->email, $customer->firstname.' '.$customer->lastname, @@ -1809,7 +1809,7 @@ class AdminOrdersControllerCore extends AdminController Mail::Send( (int)$order->id_lang, 'order_changed', - Mail::l('Your order has been changed', $order->id_lang), + Mail::l('Your order has been changed', (int)$order->id_lang), $data, $order->getCustomer()->email, $order->getCustomer()->firstname.' '.$order->getCustomer()->lastname, From 68a98b29a6ce4cf750130c80d6349a862924d2f4 Mon Sep 17 00:00:00 2001 From: TMMeilleur Date: Thu, 31 Oct 2013 15:51:25 +0200 Subject: [PATCH 182/247] tm theme --- modules/addsharethis/addsharethis.php | 188 +++ modules/addsharethis/addsharethis.tpl | 25 + modules/addsharethis/addsharethis_header.tpl | 2 + modules/addsharethis/addsharethis_top.tpl | 36 + modules/addsharethis/config.xml | 12 + modules/addsharethis/css/addsharethis.css | 6 + modules/addsharethis/de.php | 0 modules/addsharethis/en.php | 4 + modules/addsharethis/es.php | 0 modules/addsharethis/fr.php | 0 modules/addsharethis/img/ajax-loader.gif | Bin 0 -> 723 bytes modules/addsharethis/img/facebook.gif | Bin 0 -> 1972 bytes modules/addsharethis/img/google.gif | Bin 0 -> 2219 bytes modules/addsharethis/img/pinterest.gif | Bin 0 -> 2573 bytes modules/addsharethis/img/twitter.gif | Bin 0 -> 2420 bytes modules/addsharethis/logo.gif | Bin 0 -> 468 bytes modules/addsharethis/logo.png | Bin 0 -> 3827 bytes modules/addsharethis/ru.php | 0 modules/blockquickview/blockquickview.php | 133 ++ modules/blockquickview/config.xml | 12 + modules/blockquickview/index.php | 35 + modules/blockquickview/logo.gif | Bin 0 -> 1279 bytes modules/blockquickview/logo.png | Bin 0 -> 1228 bytes .../blockquickview/translations}/index.php | 8 +- themes/default-bootstrap/address.tpl | 9 +- themes/default-bootstrap/addresses.tpl | 2 +- themes/default-bootstrap/authentication.tpl | 2 +- themes/default-bootstrap/category.tpl | 11 +- .../css/bootstrap_lib/bootstrap.css | 232 +-- themes/default-bootstrap/css/category.css | 19 +- themes/default-bootstrap/css/contact-form.css | 21 + themes/default-bootstrap/css/global.css | 551 ++++++- .../css/jquery/footable.core.css | 61 + .../css/jquery/jquery.bxslider.css | 181 +++ .../css/jquery/owl-carousel/owl.carousel.css | 404 ----- .../css/jquery/owl-carousel/owl.theme.css | 93 -- .../css/jquery/responsive-tables.css | 38 + themes/default-bootstrap/css/maintenance.css | 12 +- .../css/modules/blockcart/blockcart.css | 146 +- .../modules/blockwishlist/blockwishlist.css | 84 +- .../css/modules/crossselling/crossselling.css | 1 + .../css/modules/homeslider/bx_styles.css | 161 +- .../css/modules/productcomments/img/star.png | Bin 0 -> 1267 bytes .../productcomments/productcomments.css | 17 +- .../productscategory/productscategory.css | 50 - .../modules/stripejs/stripe-prestashop.css | 21 +- themes/default-bootstrap/css/order-opc.css | 2 +- themes/default-bootstrap/css/product.css | 413 +++-- themes/default-bootstrap/css/product_list.css | 226 ++- themes/default-bootstrap/css/stores.css | 22 +- themes/default-bootstrap/discount.tpl | 10 +- themes/default-bootstrap/header.tpl | 9 +- themes/default-bootstrap/history.tpl | 10 +- themes/default-bootstrap/identity.tpl | 26 +- themes/default-bootstrap/js/cart-summary.js | 7 +- themes/default-bootstrap/js/history.js | 1 + .../default-bootstrap/js/jquery/footable.js | 785 +++++++++ themes/default-bootstrap/js/jquery/highdpi.js | 36 +- .../js/jquery/jquery.bxslider.js | 1315 +++++++++++++++ .../js/jquery/owl.carousel.js | 1415 ----------------- .../js/modules/blockcart/ajax-cart.js | 113 +- .../modules/crossselling/js/crossselling.js | 38 + .../js/modules/homeslider/js/homeslider.js | 13 +- .../productscategory/productscategory.js | 38 + themes/default-bootstrap/js/order-opc.js | 1 + themes/default-bootstrap/js/product.js | 48 +- themes/default-bootstrap/js/quick-view.js | 19 +- themes/default-bootstrap/lang/fr.php | 997 ------------ themes/default-bootstrap/lang/ru.php | 998 ++++++++++++ .../default-bootstrap/manufacturer-list.tpl | 21 +- .../modules/bankwire/translations/en.php | 13 + .../modules/bankwire/translations/it.php | 54 + .../templates/front/payment_execution.tpl | 4 +- .../modules/blockcart/blockcart-json.tpl | 2 +- .../modules/blockcart/blockcart.tpl | 90 +- .../modules/blockcart/crossselling.tpl | 50 + .../blockcategories/blockcategories.tpl | 4 +- .../modules/blockspecials/blockspecials.tpl | 2 +- .../modules/blockstore/blockstore.tpl | 2 +- .../modules/blockwishlist/managewishlist.tpl | 71 +- .../modules/blockwishlist/view.tpl | 78 +- .../modules/cheque/translations/en.php | 17 + .../modules/cheque/translations/it.php | 49 + .../modules/crossselling/crossselling.tpl | 44 + .../front/favoriteproducts-account.tpl | 4 +- .../views/templates/hook/my-account.tpl | 2 +- .../modules/homeslider/homeslider.tpl | 4 +- .../productcomments/productcomments-extra.tpl | 2 +- .../productscategory/productscategory.tpl | 49 +- .../modules/stripejs/payment.tpl | 5 +- themes/default-bootstrap/nbr-product-page.tpl | 3 +- .../order-address-multishipping-products.tpl | 3 +- .../order-address-multishipping.tpl | 8 +- .../order-address-product-line.tpl | 39 +- themes/default-bootstrap/order-address.tpl | 10 +- themes/default-bootstrap/order-carrier.tpl | 15 +- themes/default-bootstrap/order-detail.tpl | 10 +- themes/default-bootstrap/order-follow.tpl | 8 +- themes/default-bootstrap/order-payment.tpl | 6 +- themes/default-bootstrap/order-slip.tpl | 4 +- themes/default-bootstrap/order-steps.tpl | 18 +- themes/default-bootstrap/password.tpl | 2 +- themes/default-bootstrap/product-list.tpl | 25 +- themes/default-bootstrap/product-sort.tpl | 4 +- themes/default-bootstrap/product.tpl | 181 ++- .../default-bootstrap/products-comparison.tpl | 2 +- .../sass/bootstrap_lib/_labels.scss | 6 +- .../sass/bootstrap_lib/_variables.scss | 11 +- themes/default-bootstrap/sass/category.scss | 15 +- .../default-bootstrap/sass/contact-form.scss | 23 +- themes/default-bootstrap/sass/global.scss | 909 ++++++++--- .../sass/jquery/footable.core.scss | 81 + .../sass/jquery/jquery.bxslider.scss | 208 +++ .../jquery/owl-carousel/owl.carousel.scss | 233 --- .../sass/jquery/owl-carousel/owl.theme.scss | 95 -- .../default-bootstrap/sass/maintenance.scss | 11 +- .../sass/modules/blockcart/blockcart.scss | 184 ++- .../modules/blockwishlist/blockwishlist.scss | 110 +- .../modules/crossselling/crossselling.scss | 1 + .../sass/modules/homeslider/bx_styles.scss | 81 +- .../modules/productcomments/img/accept.png | Bin 781 -> 0 bytes .../modules/productcomments/img/bg_bt.gif | Bin 314 -> 0 bytes .../modules/productcomments/img/bg_li.png | Bin 155 -> 0 bytes .../modules/productcomments/img/comment.png | Bin 413 -> 0 bytes .../productcomments/img/comments_delete.png | Bin 670 -> 0 bytes .../modules/productcomments/img/delete.gif | Bin 752 -> 0 bytes .../modules/productcomments/img/delete.png | Bin 715 -> 0 bytes .../sass/modules/productcomments/img/note.png | Bin 500 -> 0 bytes .../modules/productcomments/img/note_go.png | Bin 661 -> 0 bytes .../sass/modules/productcomments/img/star.gif | Bin 1381 -> 0 bytes .../productcomments/productcomments.scss | 19 +- .../productscategory/productscategory.scss | 47 - .../modules/stripejs/stripe-prestashop.scss | 22 +- themes/default-bootstrap/sass/order-opc.scss | 2 +- themes/default-bootstrap/sass/product.scss | 661 +++++--- .../default-bootstrap/sass/product_list.scss | 227 ++- themes/default-bootstrap/sass/stores.scss | 16 +- themes/default-bootstrap/search.tpl | 8 +- .../shopping-cart-product-line.tpl | 12 +- themes/default-bootstrap/shopping-cart.tpl | 7 +- themes/default-bootstrap/supplier-list.tpl | 11 +- 141 files changed, 8112 insertions(+), 4912 deletions(-) create mode 100644 modules/addsharethis/addsharethis.php create mode 100644 modules/addsharethis/addsharethis.tpl create mode 100644 modules/addsharethis/addsharethis_header.tpl create mode 100644 modules/addsharethis/addsharethis_top.tpl create mode 100644 modules/addsharethis/config.xml create mode 100644 modules/addsharethis/css/addsharethis.css create mode 100644 modules/addsharethis/de.php create mode 100644 modules/addsharethis/en.php create mode 100644 modules/addsharethis/es.php create mode 100644 modules/addsharethis/fr.php create mode 100644 modules/addsharethis/img/ajax-loader.gif create mode 100644 modules/addsharethis/img/facebook.gif create mode 100644 modules/addsharethis/img/google.gif create mode 100644 modules/addsharethis/img/pinterest.gif create mode 100644 modules/addsharethis/img/twitter.gif create mode 100644 modules/addsharethis/logo.gif create mode 100644 modules/addsharethis/logo.png create mode 100644 modules/addsharethis/ru.php create mode 100644 modules/blockquickview/blockquickview.php create mode 100644 modules/blockquickview/config.xml create mode 100644 modules/blockquickview/index.php create mode 100644 modules/blockquickview/logo.gif create mode 100644 modules/blockquickview/logo.png rename {themes/default-bootstrap/js/modules => modules/blockquickview/translations}/index.php (97%) create mode 100644 themes/default-bootstrap/css/jquery/footable.core.css create mode 100644 themes/default-bootstrap/css/jquery/jquery.bxslider.css delete mode 100644 themes/default-bootstrap/css/jquery/owl-carousel/owl.carousel.css delete mode 100644 themes/default-bootstrap/css/jquery/owl-carousel/owl.theme.css create mode 100644 themes/default-bootstrap/css/jquery/responsive-tables.css create mode 100644 themes/default-bootstrap/css/modules/crossselling/crossselling.css create mode 100644 themes/default-bootstrap/css/modules/productcomments/img/star.png create mode 100644 themes/default-bootstrap/js/jquery/footable.js create mode 100644 themes/default-bootstrap/js/jquery/jquery.bxslider.js delete mode 100644 themes/default-bootstrap/js/jquery/owl.carousel.js create mode 100644 themes/default-bootstrap/js/modules/crossselling/js/crossselling.js create mode 100644 themes/default-bootstrap/js/modules/productscategory/productscategory.js delete mode 100644 themes/default-bootstrap/lang/fr.php create mode 100644 themes/default-bootstrap/lang/ru.php create mode 100644 themes/default-bootstrap/modules/bankwire/translations/en.php create mode 100644 themes/default-bootstrap/modules/bankwire/translations/it.php create mode 100644 themes/default-bootstrap/modules/blockcart/crossselling.tpl create mode 100644 themes/default-bootstrap/modules/cheque/translations/en.php create mode 100644 themes/default-bootstrap/modules/cheque/translations/it.php create mode 100644 themes/default-bootstrap/modules/crossselling/crossselling.tpl create mode 100644 themes/default-bootstrap/sass/jquery/footable.core.scss create mode 100644 themes/default-bootstrap/sass/jquery/jquery.bxslider.scss delete mode 100644 themes/default-bootstrap/sass/jquery/owl-carousel/owl.carousel.scss delete mode 100644 themes/default-bootstrap/sass/jquery/owl-carousel/owl.theme.scss create mode 100644 themes/default-bootstrap/sass/modules/crossselling/crossselling.scss delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/accept.png delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/bg_bt.gif delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/bg_li.png delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/comment.png delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/comments_delete.png delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/delete.gif delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/delete.png delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/note.png delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/note_go.png delete mode 100644 themes/default-bootstrap/sass/modules/productcomments/img/star.gif diff --git a/modules/addsharethis/addsharethis.php b/modules/addsharethis/addsharethis.php new file mode 100644 index 000000000..cd0637d70 --- /dev/null +++ b/modules/addsharethis/addsharethis.php @@ -0,0 +1,188 @@ +name = 'addsharethis'; + $this->author = 'Custom'; + $this->tab = 'front_office_features'; + $this->need_instance = 0; + $this->_directory = dirname(__FILE__); + parent::__construct(); + $this->displayName = $this->l('Add Sharethis'); + $this->description = $this->l('Display social count button on the home page'); +} + +public function install() + { + Configuration::updateValue('CONF_ROW', 'ea22d519-9f98-4018-99a9-5b5f1b100fa8'); + Configuration::updateValue('ADDTHISSHARE_TWITTER',1); + Configuration::updateValue('ADDTHISSHARE_GOOGLE',1); + Configuration::updateValue('ADDTHISSHARE_PINTEREST',1); + Configuration::updateValue('ADDTHISSHARE_FACEBOOK',1); + if (!parent::install() OR + + !$this->registerHook('Extraright') OR + !$this->registerHook('header')) + return false; + return true; +} + +public function uninstall() + { + if (!parent::uninstall() OR + !Configuration::deleteByName('CONF_ROW') OR + !Configuration::deleteByName('ADDTHISSHARE_TWITTER') OR + !Configuration::deleteByName('ADDTHISSHARE_GOOGLE') OR + !Configuration::deleteByName('ADDTHISSHARE_PINTEREST') OR + !Configuration::deleteByName('ADDTHISSHARE_FACEBOOK') OR + !$this->unregisterHook('Extraright') OR + !$this->unregisterHook('header')) + return false; + else return true; +} + +public function getContent() + { + + $this->_html .= '

    '.$this->displayName.'

    '; + if (isset($_POST['submitCog'])) $this->updateCog(); + + if (Tools::isSubmit('submitCog')) + { + $conf_row = Tools::getValue('conf_row'); + Configuration::updateValue('CONF_ROW', $conf_row); + + } + $this->_html .= ' +
    + '.$this->l('Configuration').' +
    +
    + '.$this->l('(Key in your account statistic http://sharethis.com)').' +


    + +
    + +


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

    + +
    +
    +
    '; + + return $this->_html; + } + +public function updateCog() + { + Configuration::updateValue('ADDTHISSHARE_TWITTER', (isset($_POST['Twitter']) ? 1 : 0)); + Configuration::updateValue('ADDTHISSHARE_GOOGLE', (isset($_POST['Google']) ? 1 : 0)); + Configuration::updateValue('ADDTHISSHARE_PINTEREST', (isset($_POST['Pinterest']) ? 1 : 0)); + Configuration::updateValue('ADDTHISSHARE_FACEBOOK', (isset($_POST['Facebook']) ? 1 : 0)); + + } + + +function hookDisplayHeader($params) + { + global $smarty, $cookie; + global $link; + $product = new Product((int)Tools::getValue('id_product'), false, (int)$cookie->id_lang); + $productLink = $link->getProductLink($product); + $images = $product->getImages((int)$cookie->id_lang); + foreach ($images AS $k => $image) + if ($image['cover']) + { + $cover['id_image'] = (int)$product->id.'-'.(int)$image['id_image']; + $cover['legend'] = $image['legend']; + } + if (!isset($cover)) + $cover = array('id_image' => Language::getIsoById((int)$cookie->id_lang).'-default', 'legend' => 'No picture'); + $this->context->smarty->assign(array( + 'cover' => $cover, + 'product' => $product, + 'productLink' => $productLink, + 'this_path' => $this->_path + )); + return $this->display(__FILE__, 'addsharethis_header.tpl'); + } + +public function hookExtraRight($params) + { + global $smarty, $cookie, $link; + + $conf_row = Configuration::get('CONF_ROW'); + $this->context->smarty->assign(array( + 'conf_row' => $conf_row, + )); + + if (Configuration::get('ADDTHISSHARE_TWITTER') == 1) + $data['twitter'] = ''; + if (Configuration::get('ADDTHISSHARE_GOOGLE') == 1) + { + $data['google'] = ''; + } + if (Configuration::get('ADDTHISSHARE_PINTEREST') == 1) + $data['pinterest'] = ''; + + if (Configuration::get('ADDTHISSHARE_FACEBOOK') == 1) + $data['facebook'] = ''; + + + $smarty->assign('addsharethis_data', $data); + + + return $this->display(__FILE__, 'addsharethis.tpl'); + } + + function hookLeftColumn($params) + { + return $this->hookExtraRight($params); + } + + function hookFooter($params) + { + return $this->hookExtraRight($params); + } + + function hookHome($params) + { + return $this->hookExtraRight($params); + } + + function hookExtraleft($params) + { + return $this->hookExtraRight($params); + } + function hookProductActions($params) + { + return $this->hookExtraRight($params); + } + + function hookProductFooter($params) + { + return $this->hookExtraRight($params); + } + +} +?> \ No newline at end of file diff --git a/modules/addsharethis/addsharethis.tpl b/modules/addsharethis/addsharethis.tpl new file mode 100644 index 000000000..27301435a --- /dev/null +++ b/modules/addsharethis/addsharethis.tpl @@ -0,0 +1,25 @@ + +{if isset($addsharethis_data)} +
    +
    + + + {literal} + + {/literal} + {if isset($addsharethis_data.twitter)} + {$addsharethis_data.twitter} + {/if} + {if isset($addsharethis_data.google)} + {$addsharethis_data.google} + {/if} + {if isset($addsharethis_data.pinterest)} + {$addsharethis_data.pinterest} + {/if} + {if isset($addsharethis_data.facebook)} + {$addsharethis_data.facebook} + {/if} +
    +
    +{/if} + diff --git a/modules/addsharethis/addsharethis_header.tpl b/modules/addsharethis/addsharethis_header.tpl new file mode 100644 index 000000000..77523f1b7 --- /dev/null +++ b/modules/addsharethis/addsharethis_header.tpl @@ -0,0 +1,2 @@ + + diff --git a/modules/addsharethis/addsharethis_top.tpl b/modules/addsharethis/addsharethis_top.tpl new file mode 100644 index 000000000..33e879c41 --- /dev/null +++ b/modules/addsharethis/addsharethis_top.tpl @@ -0,0 +1,36 @@ + +{if isset($addsharethis_data)} +
    +
    + {if isset($addsharethis_data.twitter)} + {$addsharethis_data.twitter} + {/if} + {if isset($addsharethis_data.google)} + {$addsharethis_data.google} + {/if} + {if isset($addsharethis_data.pinterest)} + {$addsharethis_data.pinterest} + {/if} + {if isset($addsharethis_data.facebook)} + {$addsharethis_data.facebook} + {/if} +
    +
    +{/if} + + + + diff --git a/modules/addsharethis/config.xml b/modules/addsharethis/config.xml new file mode 100644 index 000000000..5e014a873 --- /dev/null +++ b/modules/addsharethis/config.xml @@ -0,0 +1,12 @@ + + + addsharethis + + + + + + 1 + 0 + + \ No newline at end of file diff --git a/modules/addsharethis/css/addsharethis.css b/modules/addsharethis/css/addsharethis.css new file mode 100644 index 000000000..ba2363d9e --- /dev/null +++ b/modules/addsharethis/css/addsharethis.css @@ -0,0 +1,6 @@ +.topaddsharethis{ position:absolute; right:-170px; top:160px; width:150px;} +.stButton .stFb, .stButton .stTwbutton, .stButton .stMainServices, .stButton .stButton_gradient {height:22px !important;} +.stButton .stButton_gradient:hover {background: -moz-linear-gradient(center top , #D5D5D5 0px, #EFEFEF 48%, #FFFFFF 94%) repeat scroll 0 0 transparent!important;} +.stButton .chicklets:hover{ opacity:1!important;} +.stButton{ margin-bottom:15px;} +.addsharethis .stButton:hover{ opacity:0.6;} \ No newline at end of file diff --git a/modules/addsharethis/de.php b/modules/addsharethis/de.php new file mode 100644 index 000000000..e69de29bb diff --git a/modules/addsharethis/en.php b/modules/addsharethis/en.php new file mode 100644 index 000000000..9839c82f9 --- /dev/null +++ b/modules/addsharethis/en.php @@ -0,0 +1,4 @@ +>c0Jyv zyyCF;_8VOn&ZHiEx$o%?^_6Q`=N$Fl`R&=4k2l```toa^<%Z99KK%Oh^VznC_ZQrJ zd+Oznci$OcK=D7fpKD04vtxj(k)8oFBT!uNpOkY^YGO%hib8p2NrpmVR$@g?eqxGV zW?ou8gW^vXPHvzo9gqniM>4SLDk$`&WX@Z%fa}pIrgaVi%@$`&3ocjRyS-yRANv!* z_AQSbPVndzue-+Ox^|iqHWO455+zs@=B>z-X`i_7z^y|o-&|VW`~1z`*SjP1HRiB3 zS_^hcFk#bZ2DG|6QRi`o3a643Px6waMH(li&u{5{Z6tMII`e_1z0n^}cndb3y?A+t zu;0u>q1;*`)BFwzU^B`TXw(u8SHTdb-p3|MDxMc#+4KvaFRgrTJ&Sia^NAL_qz&%B zMElQ7EVg8ks$6}odzaSSAVq8@89~D1+NOwSE`gJGcw9;f3UxiXCH9e3+}mll8Pg8O z2fk2d>^<@91Z(mK7 ze88+X-B+c5h6z)=E`yob=>_{91aV+wj;TDVWav gt?S6F!d97Iak>m9Y|fGEmtYMblFhINB@r+H08Uj9E&u=k literal 0 HcmV?d00001 diff --git a/modules/addsharethis/img/facebook.gif b/modules/addsharethis/img/facebook.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a9aca1e6cf6aec7e54a017cd161ea2d98666ff9 GIT binary patch literal 1972 zcmaJ>Yd{lM7LKB5!D11mR&;lWcC{*bK_rPpq(lnVbX~AwThY9xCY5ADGLQ!)Kw?2r zUM@<@qnKa-Ng`B%5>Sa10V$x+vfH%A$~(B?1C%B}nN3`=`(xSrW9HsF-}jw!=6v_Q z7ZFAxGlNjxs9_Z9R@Yr*_5t$z5rT}{#)eLpwzQcidN0-T^1ID7b*VDFEd6pg>q}N< zM?%)OjI{PM+E%UEmXzDDoAXr|BR?_GAgmhtJjeJ9LCiJvd%yx@X2^yhDS20*6EzY^ zB|~)!u|Mp$&2pu>*hIsV@!z!ODXCP4*oUSOL}!`K%dJOdMugg4R*Jq>ZR$3DSEH`a ztnZC0>Ktvq{_8A~CD$L4)Q=%k*IRCPSRUl4n-8DtEHm3BDubo5p)yw&r|z-z3}{a2 zd#^T?s5=?D{?YNN-oeRdR*SZ(xmDL#S9{Z3Rr_qv5~Hd?27B^kI^oGirnHQ!wrIPb zisky`V;!S*q@c2W6hX#jkQ?fYwnr0+6NX;%Lut*3vb<}0+-j*cYP%kvzdNNk-S`AS zs>~B(gCkYF6LIRF5oEGPcTHL~1SJ^`Nh+Cgy*$e(&o&;G>R57pOhP3?raKsaA-%w~ zhA8+1t~dx^c!#Dy5QLp*@I~AY(Dwo~Cd_oagMy_(Ci^G|11#_ePe4UKZfrsWJPs8d zO{C-K!cdUQ3zv()DESBb*z%)nG6x;J0|=5*q zqJb9>_$U<};`{(OV}?Q^5Flc3er((}Jg_YQgAc%w1ISwe0uGPE;t5z>pdTJbAqG-# zc;MwgJEDm=pHd=eVJ~AjR#Y?>hJ_R?Rw9vLB>oskbOehhlgU^d0ZSnGIS_tgnE+-= z{RHCma|$$2%og#4Fb@&{PDLgQiifFaN2dQNfiHX|D-dH|l!IYIe5{ly#NshHXGwEF zI{p7c`TSRCF&qj0k?;Q$7Vnb@L2M)_hT=tR&;eiX3?-z5ia;g|iS|KI?A%}6%Y|S_ z%!PzNXcQ5H2cmfb4kQu3z|-lJ2!R-83fN!-jf!?CV0b(Z1xF*3Lf;K}mlPK0kH_yK zkOKU1At537u)tl!uuuYNj!T2s@qADK&v7|_a6{+iI<3GLIwI3R5ibGcgoz+N@S2PNpVBN!={f$yn3h#oQ%AR>a!oyW3x}$l#*G;%^r^;^%c1V(>iu7 zWty^A`v7(J2+jQk9=@wvfSS{`NEO9UTW<_vCAy`nNQvc?lXKd1l;o7Z19%XcY>zGs{z!?{+EF zC;}NPwhqK>F6~@MRIIR3nd&X8gWs>T+2cqq#XdyW<{Zr;5r?9DV!e0O#~*SPf1d+u zfQ1>$waWq0K)L%8?`YhH$k2|-Y<6@`F!CHGvaeO-8}WZ5?BebpPHjmOun+<$dmvP4A3mjMb#Yngier$%T+SHGOlE~K$g&p2SIZhRXEkXq&5R5wiiWLr)3>{2 zizq1}w^VMMp+YwaB}GiR4HH9d6PZ2Jm-hSP>wEt==Y8MvJkRg)KIe7!q!CGUKfn;^ z1AyS%5xG34F|ndwL@py(czLI6NL6{Tcye-bG%xsR>`6pxVxmAMs~>-oR9joCP$+t%+$Rfn*U~IoTU+O* zo((@pxaWj{jx^rAd-u7AeF<*+!-o(1`m(b6`X+|wim|3O7=F9fKy-;j(4 zN+GjCv`N18`UD6H0X9JZP-Sn42k=PZ5D)?Yp>nx=WMm}Q+NjRa=FVp8q$lHJWBK`G zW8K}|xg#SoS$1f_M7B(ZK!%Qbbuw(~WwMD$Ra0uyi%VUPiU)ejZxo`frrxV=p^Y1T z1B#W(27(CyKmZ;;T7R$8-=-8oPn8Jqz>hDdW*>|Hczc0AElHj#3YGfcJF~N2hhh|p zM=F&>rFuM`74+^;f0<0y-`}rPDtmf*W@l$RIyz=%W?sE|C6!92r>EQ6+UDlw+S}W! ztE&M3K)P(IS{mf-3sUJqI`VdO67lGa2v`V)!Qm_p1vOGxjRILr3M$af8|Te)g?F($ zV)(Fsj86a~CW1j?qMW_~9Ytgjo5zNQbWp_J!x4~06cnAw4TH(ZT)mA&fgd5l2nxzs z{Q*?Rbmj74&<=w`GjR40XivaE1RRM#vH|fp2#1C6SeyeI!jbJ9$T$f6G*C!1KJzEC zAC>kg7P6wCb_s<%G8P*Z6@`hi#c=uIScpU-VR3jY9*;&4XhAebNEe|w0<(DqDlA~| zSv(<&%K_Dj^e}Fukb*)o{Z9#O-e*~k0Q0dN41>$Yis(Engu$sxng@D&|9>c({TVF~ z`oaI?`#*&R0nt1d>jw+Ck$eV>z|GX5cw|>TOc!$b0bK5$`7ZkI;tIKfU0fdM>TidE zz(5v<$&C_x#Cv;_Jvjm)ox^}VsT35VfMKziNGolrb~tAek>+3vL2h_wH=+v(M}i<1 z2a-M2fi%yhav70qm?NC$GXLQ^f03)U0-J|Krow#IKA1`4bJ^g>lF6(u=i=~1y-!@` zmvbS0k&8u=!Kx4TzYcnS3vrKn`q{R~;;`hWnav?a6U8RTzcBsGk>O@KJ~}%zy14U%86fp zIezTu&&f&RBZ&!z55>nFJP^A-CR!A=FH$Jr@8xkh>^%{?S-Zl2f|-mkdgzZK!9VQW z@vor3?b`zU{l548&d2*(udSXQ?ld>5tBdm%r*9~Zo5>`igS{QW7LWW=7_^PG)uxS> z8!XJtP^O@XvC;Zxtu*G0|~4MpmepGiTG%&t+tuzmS!QvNBp~Wfhx$ zwV<%5xa3;t^&7cHv5|UJf8DCqi>$qU=Wbnn!@c`;u|@}?qVzVlv_92tYiWA%vZM1= zSGTlFEE4Ih4nfBanVGa$#A$ET?VXsMnpVD_nSC!72=o)3Pg>NN*uDd|#0R>VN|JQV zwx$vHx@j01*!mF+EPd7yw6FQ5;4%|E#Tz!~9=EMI;pMbu`~5V}7Sz%+L_r<2NNdG9 zgEoV2m2Wg_E3$@StRi(awmx1?T(&WN>-Ahei{+_7*N<+?+vd6@9`qIXNirO$&HBnL z`#sNrfdM908GiT zH}xtxarouU@UFyiiD-DICNOB6@1H@Lsr9OSM9Dut+WFlHb17x@jv~P?>uRgiH1y0G>x3I(=+)pF$sE6G}r@9h!@k{6j#f}QevPBnh&A?>jfawB5 z@qk2USx}Di3OAm_RZk};_4QG7LBpZd7L5(@n#(&mXE$>DsVEi)~v0 zP5DY;ssHWYd|je@em6`TP5;WB-+kJ|i&+kzHY9fYts-c*zdmK|N6Jpw?Zfggj!yaB zZ6#}UV*J;3WtsiwFcMjRM!crgKt}i-TwP}JhBHZ~{02I0iT(4?BS4^sf_gEP_F~{t z+P*>AWwVt2dYv7yy9ckNuMJBw+POrUo44`@XX+V@K-C^VP3ROaODOcz(EIyw!cHPdM{w&432j-w;Z4bf z7CY3FjOdyyb|mKs&U%5?>rS`swAXCJfN&M(S`TT)_Z3 zH)1p1xj#YDfWbBZxR)nRe(1h4@#JZnJ}8wBUb*`0Kz_3m;qArpHXMGq=~kPw>qu)` zBLLI`z=QaWEiP^Yo7K}dJNxco_zDR%bhg+aqP|6pIhxweW78!ycM0U#Ho>y z4_#etF76YrUe{r;9qy#dDD=$C40gsWCL|2t@>P8O)5lLO=L-@?DnyZ6L!$&+69nEuoZnKwN6l1ABXc_fiDB6&!!NrXGU-XzU0#Hd~xwAm7GZ?CnqP9k{6L=iVb9{x3@Q$LL<{? z9(sg_a*I^OS9?g6j&llJky4-#%T;2T6qr@y$H_LSd~y0p|I>m*{#910Bzcwn-rn>EVvEspL$KLc~|e z6j3r+;@l~Q#miJOWxPxda3VcPRA7}@DwHKFKjT9}m_bsdiZ2z2g1Ejoy#h%r7BVSb zG{!P7Z#E;qYY~;YjK-kS=v*p?9^lUj@aIwj=D1v$V3R~7Rn2jQe{=o6$(^-=M6S=w z6)D7D@EC{AyeM=Bx2V zQoY+1dRv2Mrl%%9O^lCy{4hE){C;Tg-P<>>U%h!Q0{w^vqB0OwmXh`si-km)xaB+x zb2C#DV zAIaIDyW0kUq^GW?#V<-kCnhG9Tqxa^l!V@f{PD@BV{__Y-^IGzf5ZQPNr}Rg6Tc5Y*)8=p;%_^wp%%33PPC z*wiDJT#Wf0j=0pm6Mj~Ii6274f|nfMywW3FW;5OM5CJO%2S?q^bw5*8NQxCfh~Ri7`6 zHQhm9r)8Cy6)8k6oOE3gJnPmm6T);<;hA$44jf(qP*nTaa_{_=cDyio72ATrGR@Jf zNY6av2sI4mMQX4;#_av?cn=O{W|`W*4vu;BXr(E$cpt#NDQvOh&xY~iUCwIRh#^9_V-XT9HC5`i1y)YAP9h(>A)lS*JnILRN9c(xS@o(G0ubHFg0Ahiw>>CuwM0;N8$;@BAF$5dNcM(k^{ zWOY(OS#gxYsu?>}-r-t9YxR&8zA8_f0p60U(SVoc_OSMX`mvcQ1cIlLgD<@w0(w76 zVVQFy%DGs-?s1KgNiItR-c(Rji&?H2%0|kX2Edl7=2dB6izr=#{pK6hPcRHsN47~S zBaFSkURVYO2N!6bVK6*a;0d}eEXR~ywnhW>vC(KzhNvoTsUx93-M}g{mIW&cm*c@9 zkN4HhmvmRN&Az*q7dX!V1+G5{Enss&);t8KxD>g6V+lSuFD=0$SDp@Cj=u{lL;yNN zqwxOlfcdE-@&MQiD|Q;v3O^LMV6*WGR~QT5TxD;OGtlsxTWN8+>3SbzI*M3YZa7o< z=$Nhnvnd!{kAXG~Y0bhO4;mq!Po>pB@xg4iP3mK~A$UuF_%cv0ZE8!0XF?oR;Te!X0w@BC<55AT7Q7CyB>~Us zHCZPwq}vLOFBsqF$`D+u1)2&K^jZhIF$xh(WuOOj;Z-&Q0!gi0YC^hdoZsj;7G-H3 zl5OiAtASx+dIxI^obto!o?H58CJYwm{4!y7rgob7y5!t+&5P1=((7+a7bY1X{Zmgj zSOio^Cx@EsWtj*s`ok22Zb|#6k?xi4KEoR|mueQKsNPL|?9Vtg89LU`C7m9x&`yt= z775GK?ab;hm5BH4D^sUNANu)CkC5AEAQOL{vWqS=XTx!bLxfBmyeMZG5uP?L80tb} V?+EcZ4cErhx%dxhSs>7oe*+rU4$uGq literal 0 HcmV?d00001 diff --git a/modules/addsharethis/img/twitter.gif b/modules/addsharethis/img/twitter.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe5175aa438a5ed3d332a39ce988f70ce6c837b2 GIT binary patch literal 2420 zcmaJ>dmz(mAK%;>iHYf?b($fRU1MxfY%`ZyB*HT#}A1rxRVAI(2fk-gMqS-rnbr-|u;z-{(wSykAhtTv|w}w$%o@{R61O8$UwRw_I zacA(!?=$lYBQM@q=F36cvUN$9HzZdS_dn?ze`b*@yL4;JBCD=v_BHPO?H!5U6H|I4_16$A1+6Vt!1vp-|x_ePDW|!L@E=N6QqcYOw9W?E376*Y7`?W=pp> zO<3p2txqVZP2)ctD37mbw=R%-Ru9;gcII`B(-mW8IWpI}(Ul2T5c%@!6VI#1o?9N3 z*57-AJk@TQBSoHW@1Oq7{8*z7uS_SV%;LD*EJv!%E7OiSXI-fH@bQz|wfj1}bK1Of zmN~K$&BGRXa$a3ORWXrO)9uwVDY!Y!khJWpzAL>yYjd*I{zCWOs$O(SyKDVu`|#tk z(PuWf*Yj>omUK_ z+6n&ZdNUlxVmQJ5?Wkxfm&6QbxySREyW)5F(&HoPcm{my7MP=uAY^mdOaTohWJg8w z2|_10jll_H5|ne*HVO{=0ue+y!Ch1zV5*oT4vz`5L!uFMG!6s9*&;EvXuK`n28Kmr z&?pQRg|M8REuaYz(R{Nd1u~OQ=dri~7AG2}Qly1(Vg*icWv2frfzACU8_h?4 zDF;dCuu(!97llEhRV6I}snq`uWwXDb`2rv2Kl%PoVZQG{E)(U$jDNVU-{q>T zz~(9=lbJl$0VadOHk(OX(if^qXy! zi*LqfMl0RUQ`#E1`1!9-AOHOD{*Q%sZ{NJ0pL_ND%imr+fA)0t*C#WNryosCPK-Ys zdvJerWcc3D;6Q)h-QGJr-M4Su?7Gp}(caeD(yVBbUzasXuQk-y)z)0CuKMNQl~?|C zx#H5r3+Kzvl}XN)o+&wfs`zA4;faF$yyLmYa*k#nIh>W5k^b|cG;yjZB{?ZEA^xB+ z?m(=7&x_%5qS;ZA5v=h2`+-7*Lg3`tH-4^9pW4rONV4a&(% z&L}z>oRL|O9+aHV$b?*wNU|-}#YTk0s_LqQs|mGLPKmV*vW7-QV{KG@b^FysfRVZ} zAtFJ49VudfGN>Ox(H|OoFc>jR86D6c9!{8!AdyBXy%FmM=*G!OZ{OnHC6V60fA-(JH|LV=ZOsFqemz@lyO zJmd1n1ut3hI|9i$S9^vErfu0)CC;R@Q%%lY*~m<= z2`CXU0?=Jy>+QUv`?!R-2(~uAOjM8eo)0mCOZ(`@;O5h9AhXb&?OG197|kL^I;8^y z%bn}exBN7h0VK=0TE2dAZd*x;uZt!mw2jtT$dKiNjCX@Q4{1hLTx-?Fhq`2x@2&%+ zX(B>X+m`3^xN5r4nZCA*=n{YiL{iGtG&rpgi6OiDS~sjMl8A^PScIEpz{Dke)-hh*d#x{?q zG31dCjzOA!Sby}1c!9ZOi8PPsO+>S_FwZ}Ikc9$L(#Z3rby|kZ7F_Zv|u2_}3!$Zx* lnHEJxK3eeX0A(vAwkthNv(P@CX6d4wOnPtyoB{)E{u|gX^0fc} literal 0 HcmV?d00001 diff --git a/modules/addsharethis/logo.gif b/modules/addsharethis/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..055c19fe3180b8ebb5b50c5ac9d8d399751d9cda GIT binary patch literal 468 zcmV;_0W1DTNk%w1VIBY;0K@{K#L^DiC1WyiLQ5wq@hYpK zl?t{y8kAd&NOxQk5_(TSabt5ZSz0;)0fc&Qa2=K%WPpJOkdkebCYP9VW_AYz1f7L@ zB%+FCM>VLbZC|aIuXK$U7YPXs4TZH(qGBq4X1u<@!h6M3$VU$k$_W9Y*x8vz)7976 z;G@wM72OvE;oz@D9<&5G0vR2-8h6Q(?uisht{QxG74nQ-Ah zl{F=?f}@is#h)~34K<;&Xvv8_KXwucrs>Y7J!h_LW=n$zt0tk&^kuV_h_6k$P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00093P)t-s5qzW(g|HERrV*CM5rnT1m&p--rxBRS5qzT&gsu^q%@LW)5u45thOrTp z#Sww45s$qQl*AE-vJr=~5skYMfT%CMPE+C@3f?DJd!{Dl021EG#T7EiEoCE-x=HFfcGN zF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7 zLPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuyP*6}&QBhJ-Qd3h? zR8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?WjVPRroVq;@tWMpJz zWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2Ta&vQYbaZreb#-=j zc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyDgoK2Jg@uNOhKGlT zh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}m6ev3mY0{8n3$NE znVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(rl+T;sHmu^si~@} zs;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#pxVX5vxw*Q!y1To( zyu7@dCU$jHda$;ryf%FD~k%*@Qq z&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF?(gsK z@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg={r&#_{{R2~N)4Wu z0000VbW%=J|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|Nj8Z8Fml=008GnL_t(| z+JurxlEWYn1QA-1WrJD8QvCm!J|KC9nL~5U45GTLS*OQ5hZrR1D!FU*%fVXciRC8u5($9Z1YeP_dH_g^8UL33QHM+5Ci&mFMz_%Ng2ZQ2jBalv2#+k zd>R0{0x8V-vN$K(d;riDNMp|3m2U!ou3yF&W1KIy&=sf@g}03{##(?M;W|)D<85pI p{}!$TO%$&6pCClbS865jX8<7fKBzFpoc90#002ovPDHLkV1n~`TebiI literal 0 HcmV?d00001 diff --git a/modules/addsharethis/ru.php b/modules/addsharethis/ru.php new file mode 100644 index 000000000..e69de29bb diff --git a/modules/blockquickview/blockquickview.php b/modules/blockquickview/blockquickview.php new file mode 100644 index 000000000..5e0119588 --- /dev/null +++ b/modules/blockquickview/blockquickview.php @@ -0,0 +1,133 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +if (!defined('_PS_VERSION_')) + exit; + +class Blockquickview extends Module +{ + public function __construct() + { + $this->name = 'blockquickview'; + $this->tab = 'front_office_features'; + $this->version = '1.0'; + parent::__construct(); + $this->displayName = $this->l('Quick view'); + $this->description = $this->l('Add Quick information about product.'); + } + + public function install() + { + Configuration::updateValue('PS_QUICK_VIEW',1); + if (!parent::install()) + return false; + return true; + } + + public function uninstall() + { + if (!parent::uninstall() OR + !Configuration::deleteByName('PS_QUICK_VIEW')) + return false; + else return true; + } + + + public function getContent() + { + $html = ''; + // If we try to update the settings + if (Tools::isSubmit('submitModule')) + { + Configuration::updateValue('PS_QUICK_VIEW', Tools::getValue('PS_QUICK_VIEW')); + $html .= $this->displayConfirmation($this->l('Configuration updated')); + } + $html .= $this->renderForm(); + return $html; + } + + public function renderForm() + { + $fields_form = array( + 'form' => array( + 'legend' => array( + 'title' => $this->l('Settings'), + 'icon' => 'icon-cogs' + ), + 'input' => array( + array( + 'type' => 'switch', + 'label' => $this->l('Display Quick view'), + 'name' => 'PS_QUICK_VIEW', + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled') + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled') + ) + ), + ), + ), + 'submit' => array( + 'title' => $this->l('Save'), + 'class' => 'btn btn-primary') + ), + ); + + $helper = new HelperForm(); + $helper->show_toolbar = false; + $helper->table = $this->table; + $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT')); + $helper->default_form_language = $lang->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; + $this->fields_form = array(); + + $helper->identifier = $this->identifier; + $helper->submit_action = 'submitModule'; + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $helper->tpl_vars = array( + 'fields_value' => $this->getConfigFieldsValues(), + 'languages' => $this->context->controller->getLanguages(), + 'id_language' => $this->context->language->id + ); + + return $helper->generateForm(array($fields_form)); + } + + public function getConfigFieldsValues() + { + return array( + 'PS_QUICK_VIEW' => Tools::getValue('PS_QUICK_VIEW', Configuration::get('PS_QUICK_VIEW')), + ); + + } +} \ No newline at end of file diff --git a/modules/blockquickview/config.xml b/modules/blockquickview/config.xml new file mode 100644 index 000000000..5d75d80b9 --- /dev/null +++ b/modules/blockquickview/config.xml @@ -0,0 +1,12 @@ + + + blockquickview + + + + + + 1 + 1 + + \ No newline at end of file diff --git a/modules/blockquickview/index.php b/modules/blockquickview/index.php new file mode 100644 index 000000000..07830d90c --- /dev/null +++ b/modules/blockquickview/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../../'); +exit; \ No newline at end of file diff --git a/modules/blockquickview/logo.gif b/modules/blockquickview/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc0ae8b2cb0a89b1f4c6a399fe725f6e9fa35901 GIT binary patch literal 1279 zcmZ?wbhEHbRA5kG*v!u$x6v-9O7C~?S5nAK zu~iB;^)>J6!V;*iRMRQ;gT;{4L0 zJ^^2{qP zNz6-5^>ndS0_xYx%uKOzGBr1GHgz&Jc5`txG;}p~a&vKZbh0#ca&<82=9Z zF3nBND}m`vLFhHZsTY(GatnYqyQCInmZhe+73JqDfIV!LiQ6s4IL(9VO~LIJ6P$YW zfsWA!MJrM?!-Rlo2gHOYS|A6W>{IiAX}t)Ts2TtN`}^njub)4@fBX97^QVs=-oJbM z=Jl(WFP=Yp`sDGWhY#-GyL;#Mt(!NlU%Ptc@}-Lx&YwGb=JctPCypOGdgSn-g9rBS z+q-A?uAMu!Z`-%OrteG>WPn$Yr@}!9q z`ulo&y1P0%+S^)NnwuIM>g#H2s;eq1%F9Yiii-*h^7C?Yva>QX($i8?l9Lh>;^Sgt zqN5@s!oxyCf`bAB{QZ1=yuCa<+}&JVoShsU?CorAtgS39%*{+qjE#U9N>5iuTT4?z zT}@R*SxHerUQSjB7J=>BC9S)q5>opWXdGL8C7vb6!T5rq2VTQ^f{|D2zX>f&T(PTC}Lr4P7x@7A;-p=CmX|& z7vP-8#1X2%%*vX@#KOpu$3CH6fr*okbt?N5Uk6n#ZZ(+1BxM}m2t(t-i F)&Oq!%Dn&p literal 0 HcmV?d00001 diff --git a/modules/blockquickview/logo.png b/modules/blockquickview/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3702fd527f5026c902025f2685cbf98045230827 GIT binary patch literal 1228 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%nF$y5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8sq zIZnO$K*#8Vq7^BcVM4&P17gAxEsz6G_NjTmv|a>E)TLj{WEmJ3ojhF}Ln>~)nRYR^ z*+8IeVHTT*`vko+RB7o0l5jV|}tkciE;L`<9&Ll?#+u zm%sfXYs$Pr@$-!3C)$+G-L$tkenxvk@?W0(&nFB{9k26ZciXsV#<#Yh{2g^{F>Irf%Q~loCIFUEuXz9f literal 0 HcmV?d00001 diff --git a/themes/default-bootstrap/js/modules/index.php b/modules/blockquickview/translations/index.php similarity index 97% rename from themes/default-bootstrap/js/modules/index.php rename to modules/blockquickview/translations/index.php index 52b4e5c37..3f6561f72 100644 --- a/themes/default-bootstrap/js/modules/index.php +++ b/modules/blockquickview/translations/index.php @@ -23,13 +23,13 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ - + header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); -exit; +exit; \ No newline at end of file diff --git a/themes/default-bootstrap/address.tpl b/themes/default-bootstrap/address.tpl index 5de930f28..dde2a2244 100644 --- a/themes/default-bootstrap/address.tpl +++ b/themes/default-bootstrap/address.tpl @@ -217,13 +217,14 @@ $(function(){ldelim}
    - {if isset($one_phone_at_least) && $one_phone_at_least} -

    {l s='You must register at least one phone number.'}

    - {/if} -
    +
    + {if isset($one_phone_at_least) && $one_phone_at_least} +

    {l s='You must register at least one phone number.'}

    + {/if} +
    diff --git a/themes/default-bootstrap/addresses.tpl b/themes/default-bootstrap/addresses.tpl index 1a70345b9..c74781316 100644 --- a/themes/default-bootstrap/addresses.tpl +++ b/themes/default-bootstrap/addresses.tpl @@ -124,7 +124,7 @@ {/if}
    {else} -
    id_image}style="background:url({$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category_default')|escape:'html'}) 0 0 no-repeat; min-height:{$categorySize.height}px;" {/if}> - - - +
    id_image}style="background:url({$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category_default')|escape:'html'}) 0 bottom no-repeat; background-size:contain; min-height:{$categorySize.height}px;" {/if}> {if $category->description}

    @@ -96,13 +93,13 @@ -

    {$subcategory.name|escape:'htmlall':'UTF-8'}
    +
    {$subcategory.name|truncate:25:'...'|escape:'htmlall':'UTF-8'|truncate:350}
    {if $subcategory.description}
    {$subcategory.description}
    {/if} diff --git a/themes/default-bootstrap/css/bootstrap_lib/bootstrap.css b/themes/default-bootstrap/css/bootstrap_lib/bootstrap.css index d516a27e5..11f03b35b 100644 --- a/themes/default-bootstrap/css/bootstrap_lib/bootstrap.css +++ b/themes/default-bootstrap/css/bootstrap_lib/bootstrap.css @@ -406,13 +406,13 @@ p { .lead { margin-bottom: 18px; - font-size: 14.95px; + font-size: 13px; font-weight: 200; line-height: 1.4; } @media (min-width: 768px) { .lead { - font-size: 19.5px; + font-size: 13px; } } @@ -488,19 +488,19 @@ h6 { } h1, .h1 { - font-size: 33px; + font-size: 26px; } h2, .h2 { - font-size: 27px; + font-size: 26px; } h3, .h3 { - font-size: 23px; + font-size: 13px; } h4, .h4 { - font-size: 17px; + font-size: 13px; } h5, .h5 { @@ -508,15 +508,15 @@ h5, .h5 { } h6, .h6 { - font-size: 12px; + font-size: 0px; } h1 small, .h1 small { - font-size: 23px; + font-size: 13px; } h2 small, .h2 small { - font-size: 17px; + font-size: 13px; } h3 small, .h3 small, @@ -610,7 +610,7 @@ blockquote { border-left: 5px solid #eeeeee; } blockquote p { - font-size: 16.25px; + font-size: 13px; font-weight: 300; line-height: 1.25; } @@ -1687,7 +1687,7 @@ legend { width: 100%; padding: 0; margin-bottom: 18px; - font-size: 19.5px; + font-size: 13px; line-height: inherit; color: #333333; border: 0; @@ -1766,16 +1766,16 @@ input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-i background-color: white; border: 1px solid #d6d4d4; border-radius: 0px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } .form-control:focus { border-color: #66afe9; outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 8px rgba(102, 175, 233, 0); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 8px rgba(102, 175, 233, 0); } .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { cursor: not-allowed; @@ -1902,13 +1902,13 @@ textarea.input-lg, .input-group-lg > textarea.form-control, } .has-warning .form-control { border-color: white; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); } .has-warning .form-control:focus { border-color: #e6e6e6; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px white; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px white; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 6px white; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 6px white; } .has-warning .input-group-addon { color: white; @@ -1922,13 +1922,13 @@ textarea.input-lg, .input-group-lg > textarea.form-control, } .has-error .form-control { border-color: white; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); } .has-error .form-control:focus { border-color: #e6e6e6; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px white; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px white; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 6px white; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 6px white; } .has-error .input-group-addon { color: white; @@ -1942,13 +1942,13 @@ textarea.input-lg, .input-group-lg > textarea.form-control, } .has-success .form-control { border-color: white; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); } .has-success .form-control:focus { border-color: #e6e6e6; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px white; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px white; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 6px white; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0), 0 0 6px white; } .has-success .input-group-addon { color: white; @@ -2052,14 +2052,14 @@ textarea.input-lg, .input-group-lg > textarea.form-control, .btn:active, .btn.active { outline: 0; background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0); } .btn.disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); + opacity: 0; + filter: alpha(opacity=0); -webkit-box-shadow: none; box-shadow: none; } @@ -2170,18 +2170,18 @@ textarea.input-lg, .input-group-lg > textarea.form-control, .btn-success { color: white; - background-color: #5cb85c; - border-color: #4cae4c; + background-color: #46a74e; + border-color: #3e9546; } .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active { color: white; - background-color: #47a447; - border-color: #398439; + background-color: #3a8a41; + border-color: #2c6a31; } .open .btn-success.dropdown-toggle { color: white; - background-color: #47a447; - border-color: #398439; + background-color: #3a8a41; + border-color: #2c6a31; } .btn-success:active, .btn-success.active { background-image: none; @@ -2190,8 +2190,8 @@ textarea.input-lg, .input-group-lg > textarea.form-control, background-image: none; } .btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled]:active, .btn-success[disabled].active, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; + background-color: #46a74e; + border-color: #3e9546; } .btn-info { @@ -3159,8 +3159,8 @@ input[type="button"].btn-block { border: 1px solid #cccccc; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0); background-clip: padding-box; } .dropdown-menu.pull-right { @@ -3376,8 +3376,8 @@ input[type="button"].btn-block { } .btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0); } .btn .caret { @@ -3771,7 +3771,7 @@ input[type="button"].btn-block { padding-right: 15px; padding-left: 15px; border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0); -webkit-overflow-scrolling: touch; } .navbar-collapse:before, .navbar-collapse:after { @@ -3957,8 +3957,8 @@ input[type="button"].btn-block { padding: 10px 15px; border-top: 1px solid transparent; border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0), 0 1px 0 rgba(255, 255, 255, 0); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0), 0 1px 0 rgba(255, 255, 255, 0); margin-top: 9px; margin-bottom: 9px; } @@ -4340,14 +4340,14 @@ input[type="button"].btn-block { .label { display: inline; padding: .2em .6em .3em; - font-size: 75%; + font-size: 100%; font-weight: bold; line-height: 1; color: white; text-align: center; white-space: nowrap; vertical-align: baseline; - border-radius: .25em; + border-radius: 0; } .label[href]:hover, .label[href]:focus { color: white; @@ -4373,10 +4373,11 @@ input[type="button"].btn-block { } .label-success { - background-color: #5cb85c; + background-color: #55c65e; + border: 1px solid #36943e; } .label-success[href]:hover, .label-success[href]:focus { - background-color: #449d44; + background-color: #3aae43; } .label-info { @@ -4387,10 +4388,11 @@ input[type="button"].btn-block { } .label-warning { - background-color: #f0ad4e; + background-color: #fe9126; + border: 1px solid #e4752b; } .label-warning[href]:hover, .label-warning[href]:focus { - background-color: #ec971f; + background-color: #f07701; } .label-danger { @@ -4442,9 +4444,9 @@ a.list-group-item.active > .badge, .jumbotron { padding: 30px; margin-bottom: 30px; - font-size: 19.5px; + font-size: 13px; font-weight: 200; - line-height: 2.14286; + line-height: 1.42857; color: inherit; background-color: #eeeeee; } @@ -4460,15 +4462,15 @@ a.list-group-item.active > .badge, } @media screen and (min-width: 768px) { .jumbotron { - padding-top: 48px; - padding-bottom: 48px; + padding-top: 30px; + padding-bottom: 30px; } .container .jumbotron { padding-left: 60px; padding-right: 60px; } .jumbotron h1 { - font-size: 58.5px; + font-size: 52px; } } @@ -4621,8 +4623,8 @@ a.thumbnail:focus { margin-bottom: 18px; background-color: whitesmoke; border-radius: 0px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0); } .progress-bar { @@ -4633,17 +4635,17 @@ a.thumbnail:focus { color: white; text-align: center; background-color: #428bca; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0); -webkit-transition: width 0.6s ease; transition: width 0.6s ease; } .progress-striped .progress-bar { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0)), color-stop(0.75, rgba(255, 255, 255, 0)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); background-size: 40px 40px; } @@ -4656,43 +4658,43 @@ a.thumbnail:focus { } .progress-bar-success { - background-color: #5cb85c; + background-color: #46a74e; } .progress-striped .progress-bar-success { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0)), color-stop(0.75, rgba(255, 255, 255, 0)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); } .progress-bar-info { background-color: #5bc0de; } .progress-striped .progress-bar-info { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0)), color-stop(0.75, rgba(255, 255, 255, 0)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); } .progress-bar-warning { background-color: #f0ad4e; } .progress-striped .progress-bar-warning { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0)), color-stop(0.75, rgba(255, 255, 255, 0)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); } .progress-bar-danger { background-color: #d9534f; } .progress-striped .progress-bar-danger { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0)), color-stop(0.75, rgba(255, 255, 255, 0)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 75%, transparent 75%, transparent); } .media, @@ -4797,8 +4799,8 @@ a.list-group-item:hover, a.list-group-item:focus { background-color: white; border: 1px solid transparent; border-radius: 0px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0); } .panel-body { @@ -4849,7 +4851,7 @@ a.list-group-item:hover, a.list-group-item:focus { .panel-title { margin-top: 0; margin-bottom: 0; - font-size: 15px; + font-size: 13px; } .panel-title > a { color: inherit; @@ -4981,12 +4983,12 @@ a.list-group-item:hover, a.list-group-item:focus { background-color: whitesmoke; border: 1px solid #e3e3e3; border-radius: 0px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0); } .well blockquote { border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); + border-color: rgba(0, 0, 0, 0); } .well-lg { @@ -5001,20 +5003,20 @@ a.list-group-item:hover, a.list-group-item:focus { .close { float: right; - font-size: 19.5px; + font-size: 13px; font-weight: bold; line-height: 1; color: black; text-shadow: 0 1px 0 white; - opacity: 0.2; - filter: alpha(opacity=20); + opacity: 0; + filter: alpha(opacity=0); } .close:hover, .close:focus { color: black; text-decoration: none; cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); + opacity: 0; + filter: alpha(opacity=0); } button.close { @@ -5077,8 +5079,8 @@ body.modal-open { border: 1px solid #999999; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0); background-clip: padding-box; outline: none; } @@ -5097,8 +5099,8 @@ body.modal-open { filter: alpha(opacity=0); } .modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); + opacity: 0; + filter: alpha(opacity=0); } .modal-header { @@ -5157,8 +5159,8 @@ body.modal-open { } .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0); } } .tooltip { @@ -5172,8 +5174,8 @@ body.modal-open { filter: alpha(opacity=0); } .tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); + opacity: 0; + filter: alpha(opacity=0); } .tooltip.top { margin-top: -3px; @@ -5277,8 +5279,8 @@ body.modal-open { border: 1px solid #cccccc; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0); white-space: normal; } .popover.top { @@ -5455,28 +5457,28 @@ body.modal-open { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } .carousel-control.left { - background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0) 0%), color-stop(rgba(0, 0, 0, 0) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#00000000', GradientType=1); } .carousel-control.right { left: auto; right: 0; - background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); - background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0) 0%), color-stop(rgba(0, 0, 0, 0) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#00000000', GradientType=1); } .carousel-control:hover, .carousel-control:focus { color: white; text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); + opacity: 0; + filter: alpha(opacity=0); } .carousel-control .icon-prev, .carousel-control .icon-next, diff --git a/themes/default-bootstrap/css/category.css b/themes/default-bootstrap/css/category.css index 727f7ae9c..f3071a0d2 100644 --- a/themes/default-bootstrap/css/category.css +++ b/themes/default-bootstrap/css/category.css @@ -9,14 +9,25 @@ margin-bottom: 26px; } .content_scene_cat .content_scene_cat_bg { - padding: 18px 0 10px 42px; - background-color: #403d3b; + padding: 18px 10px 10px 42px; + background-color: #464646 !important; +} +@media (max-width: 1199px) { + .content_scene_cat .content_scene_cat_bg { + padding: 10px 10px 10px 15px; + } } .content_scene_cat h1.category-name { font: 600 42px/51px "Open Sans", sans-serif; color: #fff; margin-bottom: 12px; } +@media (max-width: 1199px) { + .content_scene_cat h1.category-name { + font-size: 25px; + line-height: 30px; + } +} .content_scene_cat p { margin-bottom: 0; } @@ -44,7 +55,7 @@ ************************************************************************************************ */ #subcategories { border-top: 1px solid #d6d4d4; - padding: 15px 0 13px 0; + padding: 15px 0 0px 0; } #subcategories p.subcategory-heading { font-weight: bold; @@ -59,6 +70,8 @@ width: 128px; margin-left: 20px; text-align: center; + margin-bottom: 13px; + height: 202px; } #subcategories ul li .subcategory-image { padding-bottom: 8px; diff --git a/themes/default-bootstrap/css/contact-form.css b/themes/default-bootstrap/css/contact-form.css index b0c02aa1f..5a948bd1c 100644 --- a/themes/default-bootstrap/css/contact-form.css +++ b/themes/default-bootstrap/css/contact-form.css @@ -20,6 +20,7 @@ -webkit-box-shadow: rgba(0, 0, 0, 0) 0px 5px 13px; -moz-box-shadow: rgba(0, 0, 0, 0) 0px 5px 13px; box-shadow: rgba(0, 0, 0, 0) 0px 5px 13px; + /* min 992px max 1199px */ } .contact-form-box fieldset { padding: 0 19px 21px 19px; @@ -36,9 +37,21 @@ } .contact-form-box .col-md-3 { padding-left: 0; + /* max 991px */ +} +@media (max-width: 991px) { + .contact-form-box .col-md-3 { + padding-right: 0; + } } .contact-form-box .col-md-9 { padding-right: 0; + /* max 991px */ +} +@media (max-width: 991px) { + .contact-form-box .col-md-9 { + padding-left: 0; + } } .contact-form-box #desc_contact0 { display: none; @@ -56,6 +69,14 @@ max-width: 270px; width: 100%; } +.contact-form-box input.form-control { + max-width: 270px; +} +@media (min-width: 992px) and (max-width: 1199px) { + .contact-form-box div.uploader span.filename { + width: 114px; + } +} /************************************************************************** Contact Page Bottom Banners Styles diff --git a/themes/default-bootstrap/css/global.css b/themes/default-bootstrap/css/global.css index 9c079d41b..603a38af8 100644 --- a/themes/default-bootstrap/css/global.css +++ b/themes/default-bootstrap/css/global.css @@ -67,6 +67,9 @@ body { line-height: 18px; font-size: 13px; } +body.content_only { + background: none; +} textarea { resize: none; @@ -105,6 +108,11 @@ textarea { } /* text **************************************************************************************** */ +a, a:focus, a:active { + text-decoration: none; + outline: none; +} + p.info-title { font-weight: bold; color: #333; @@ -128,11 +136,33 @@ p.info-account { } .alert ul, .alert ol { padding-left: 15px; + margin-left: 27px; } .alert ul li, .alert ol li { list-style-type: decimal; font-weight: normal; } +.alert.alert-success { + text-shadow: 1px 1px rgba(0, 0, 0, 0); +} +.alert.alert-success:before { + font-family: "FontAwesome"; + content: "ď"; + font-size: 20px; + vertical-align: -2px; + padding-right: 7px; +} +.alert.alert-danger { + text-shadow: 1px 1px rgba(0, 0, 0, 0); +} +.alert.alert-danger:before { + font-family: "FontAwesome"; + content: "ď—"; + font-size: 20px; + vertical-align: -2px; + padding-right: 7px; + float: left; +} .required sup { color: #f13340; @@ -149,6 +179,13 @@ label { color: #333; } +.checkbox { + line-height: 16px; +} +.checkbox label { + color: #777777; +} + .close { opacity: 1; } @@ -173,6 +210,8 @@ span.exclusive_mini, span.exclusive_small, span.exclusive, span.exclusive_large, color: #000; background: url(../img/bg_bt.gif) repeat-x 0 0 #f4b61b; cursor: pointer; + white-space: normal; + text-align: left; } *:first-child + html input.button_mini, *:first-child + html input.button_small, *:first-child + html input.button, *:first-child + html input.button_large, @@ -318,16 +357,36 @@ input.button_large, input.button_large_disabled, input.exclusive_large, input.ex padding: 10px 10px 10px 14px; border: 1px solid; border-color: #74d578; + /* max 480px */ +} +@media (max-width: 480px) { + .button.button-medium span { + font-size: 15px; + padding-right: 7px; + padding-left: 7px; + } } .button.button-medium i.left { font-size: 24px; vertical-align: -2px; margin: -4px 10px 0 0; display: inline-block; + /* max 480px */ +} +@media (max-width: 480px) { + .button.button-medium i.left { + margin-right: 5px; + } } .button.button-medium i.right { margin-right: 0; margin-left: 9px; + /* max 480px */ +} +@media (max-width: 480px) { + .button.button-medium i.right { + margin-left: 5px; + } } .button.button-medium:hover { background: #3aa04c; @@ -441,6 +500,14 @@ input.button_large, input.button_large_disabled, input.exclusive_large, input.ex background: -ms-linear-gradient(top, #f7f7f7 0%, #ededed 100%); background: linear-gradient(to bottom, #f7f7f7 0%, #ededed 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#ededed',GradientType=0 ); + /* max 480px */ +} +@media (max-width: 480px) { + .button.exclusive-medium span { + font-size: 15px; + padding-right: 7px; + padding-left: 7px; + } } .button.exclusive-medium:hover { border-color: #9e9e9e #c2c2c2 #c8c8c8 #c2c2c2; @@ -634,6 +701,10 @@ table.table_block td { padding: 0 5px 0 3px; display: inline-block; } +.price-percent-reduction.small { + font: 700 14px/17px Arial, Helvetica, sans-serif; + padding: 1px 6px; +} /*************************************************************************************************** Labels New/Sale @@ -781,9 +852,34 @@ table.table_block td { padding: 9px 10px 9px 20px; } .box.box-small .dark { - margin-top: 10px; + padding-top: 10px; + padding-right: 20px; margin-bottom: 0; + width: auto; +} + +.page-product-box { + padding-bottom: 10px; +} + +.product-box { + width: 178px; float: left; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.product-box .product-image { + border: 1px solid #d6d4d4; + background: white; + padding: 5px; + display: block; + margin-bottom: 11px; +} +.product-box .product-image img { + max-width: 100%; + width: 100%; + height: auto; } /* BLOCK .block ******************************************************************************** */ @@ -973,6 +1069,7 @@ table.table_block td { padding: 0px 0px 17px 0px; margin-bottom: 30px; border-bottom: 1px solid #d6d4d4; + overflow: hidden; } .page-heading span.heading-counter { font: bold 13px/22px Arial, Helvetica, sans-serif; @@ -980,6 +1077,16 @@ table.table_block td { color: #333; text-transform: none; } +@media (max-width: 480px) { + .page-heading span.heading-counter { + float: none; + display: block; + padding-top: 5px; + } +} +.page-heading span.lighter { + color: #9c9c9c; +} .page-heading.bottom-indent { margin-bottom: 16px; } @@ -1000,9 +1107,24 @@ table.table_block td { border-bottom: 1px solid #d6d4d4; } +h3.page-product-heading { + color: #555454; + text-transform: uppercase; + font-family: "Open Sans", sans-serif; + font-weight: 600; + font-size: 18px; + line-height: 20px; + padding: 14px 20px 17px; + margin: 0 0 20px; + position: relative; + border: 1px solid #d6d4d4; + border-bottom: none; + background: #fbfbfb; +} + /* BLOCK .footer_links (cms pages) ************************************************************* */ ul.footer_links { - padding: 20px 0 50px 0; + padding: 20px 0 0px 0; border-top: 1px solid #d6d4d4; } ul.footer_links li { @@ -1024,8 +1146,14 @@ ul.footer_links li + li { margin-bottom: 10px; } .content_sortPagiBar .sortPagiBar #productsSortForm select { - width: 192px; + max-width: 192px; float: left; + /* max 991px */ +} +@media (max-width: 991px) { + .content_sortPagiBar .sortPagiBar #productsSortForm select { + max-width: 160px; + } } .content_sortPagiBar .sortPagiBar #productsSortForm .selector { float: left; @@ -1034,7 +1162,7 @@ ul.footer_links li + li { float: left; } .content_sortPagiBar .sortPagiBar .nbrItemPage select { - width: 59px; + max-width: 59px; float: left; } .content_sortPagiBar .sortPagiBar .nbrItemPage .clearfix > span { @@ -1098,10 +1226,35 @@ ul.footer_links li + li { float: right; width: 530px; text-align: center; + /* min 992px max 1199px */ + /* max 991px */ +} +@media (min-width: 992px) and (max-width: 1199px) { + .top-pagination-content div.pagination, .bottom-pagination-content div.pagination { + width: 380px; + } +} +@media (max-width: 991px) { + .top-pagination-content div.pagination, .bottom-pagination-content div.pagination { + float: left; + width: auto; + } } .top-pagination-content div.pagination .showall, .bottom-pagination-content div.pagination .showall { float: right; margin: 8px 53px 8px 14px; + /* min 992px max 1199px */ + /* max 991px */ +} +@media (min-width: 992px) and (max-width: 1199px) { + .top-pagination-content div.pagination .showall, .bottom-pagination-content div.pagination .showall { + margin-right: 11px; + } +} +@media (max-width: 991px) { + .top-pagination-content div.pagination .showall, .bottom-pagination-content div.pagination .showall { + margin-right: 0; + } } .top-pagination-content div.pagination .showall .btn span, .bottom-pagination-content div.pagination .showall .btn span { font-size: 13px; @@ -1162,12 +1315,26 @@ ul.footer_links li + li { } .top-pagination-content .compare-form, .bottom-pagination-content .compare-form { float: right; + /* max 479px */ +} +@media (max-width: 479px) { + .top-pagination-content .compare-form, .bottom-pagination-content .compare-form { + float: left; + width: 100%; + text-align: left; + padding-bottom: 10px; + clear: both; + } } .top-pagination-content .product-count, .bottom-pagination-content .product-count { - position: absolute; - left: 0; - top: 0; - padding: 22px 0 0 0; + padding: 11px 0 0 0; + float: left; + /* max 991px */ +} +@media (max-width: 991px) { + .top-pagination-content .product-count, .bottom-pagination-content .product-count { + clear: left; + } } .bottom-pagination-content { @@ -1178,11 +1345,16 @@ ul.footer_links li + li { ul.step { margin-bottom: 30px; overflow: hidden; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -ms-border-radius: 4px; - -o-border-radius: 4px; - border-radius: 4px; + /*min 480px*/ +} +@media (min-width: 480px) { + ul.step { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; + } } ul.step li { float: left; @@ -1193,6 +1365,13 @@ ul.step li { border-bottom-color: #9a9a9a; border-right-color: #b7b7b7; border-left-width: 0px; + /* max 480px */ +} +@media (max-width: 479px) { + ul.step li { + width: 100%; + border-left-width: 1px; + } } ul.step li a, ul.step li span, ul.step li.step_current span, ul.step li.step_current_end span { display: block; @@ -1203,18 +1382,21 @@ ul.step li a, ul.step li span, ul.step li.step_current span, ul.step li.step_cur font-weight: bold; text-shadow: 1px 1px white; position: relative; + /* min 991px */ } -ul.step li a:after, ul.step li span:after, ul.step li.step_current span:after, ul.step li.step_current_end span:after { - content: "."; - position: absolute; - top: 0; - right: -31px; - z-index: 0; - text-indent: -5000px; - display: block; - width: 31px; - height: 52px; - margin-top: -2px; +@media (min-width: 992px) { + ul.step li a:after, ul.step li span:after, ul.step li.step_current span:after, ul.step li.step_current_end span:after { + content: "."; + position: absolute; + top: 0; + right: -31px; + z-index: 0; + text-indent: -5000px; + display: block; + width: 31px; + height: 52px; + margin-top: -2px; + } } ul.step li a:focus, ul.step li span:focus, ul.step li.step_current span:focus, ul.step li.step_current_end span:focus { text-decoration: none; @@ -1223,22 +1405,32 @@ ul.step li a:focus, ul.step li span:focus, ul.step li.step_current span:focus, u ul.step li.first { border-left-width: 1px; border-left-color: #b7b7b7; - -moz-border-radius-topleft: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; + /*min 480px*/ +} +@media (min-width: 480px) { + ul.step li.first { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + } } ul.step li.first span, ul.step li.first a { - -moz-border-radius-topleft: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; z-index: 5; padding-left: 13px !important; + /*min 480px*/ +} +@media (min-width: 480px) { + ul.step li.first span, ul.step li.first a { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + } } ul.step li.second span, ul.step li.second a { z-index: 4; @@ -1250,22 +1442,29 @@ ul.step li.four span, ul.step li.four a { z-index: 2; } ul.step li.last { - -moz-border-radius-topright: 4px; - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; + /*min 480px*/ } ul.step li.last span { - -moz-border-radius-topright: 4px; - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; z-index: 1; } +@media (min-width: 480px) { + ul.step li.last { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + } + ul.step li.last span { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + } +} ul.step li.step_current { font-weight: bold; background: #42b856; @@ -1284,10 +1483,15 @@ ul.step li.step_current span { border: 1px solid; border-color: #73ca77 #74c776 #74c175 #74c776; position: relative; - padding-left: 38px; + /* min 991px */ } -ul.step li.step_current span:after { - background: url(../img/order-step-a.png) right 0 no-repeat; +@media (min-width: 992px) { + ul.step li.step_current span { + padding-left: 38px; + } + ul.step li.step_current span:after { + background: url(../img/order-step-a.png) right 0 no-repeat; + } } ul.step li.step_current_end { font-weight: bold; @@ -1305,11 +1509,16 @@ ul.step li.step_todo span { filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#ededed',GradientType=0 ); border: 1px solid; border-color: #fff; - padding-left: 38px; position: relative; + /* min 991px */ } -ul.step li.step_todo span:after { - background: url(../img/order-step-current.png) right 0 no-repeat; +@media (min-width: 992px) { + ul.step li.step_todo span { + padding-left: 38px; + } + ul.step li.step_todo span:after { + background: url(../img/order-step-current.png) right 0 no-repeat; + } } ul.step li.step_done { border-color: #666666 #5f5f5f #292929 #5f5f5f; @@ -1327,16 +1536,40 @@ ul.step li.step_done a { background: -ms-linear-gradient(top, #727171 0%, #666666 100%); background: linear-gradient(to bottom, #727171 0%, #666666 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#727171', endColorstr='#666666',GradientType=0 ); - padding-left: 38px; + /* min 991px */ } -ul.step li.step_done a:after { - background: url(../img/order-step-done.png) right 0 no-repeat; +@media (min-width: 992px) { + ul.step li.step_done a { + padding-left: 38px; + } + ul.step li.step_done a:after { + background: url(../img/order-step-done.png) right 0 no-repeat; + } } -ul.step li.step_done.step_done_last a:after { - background: url(../img/order-step-done-last.png) right 0 no-repeat; +ul.step li.step_done.step_done_last { + /* min 991px */ } -ul.step li#step_end span:after { - display: none; +@media (min-width: 992px) { + ul.step li.step_done.step_done_last a:after { + background: url(../img/order-step-done-last.png) right 0 no-repeat; + } +} +ul.step li#step_end span { + /* min 991px */ +} +@media (min-width: 992px) { + ul.step li#step_end span:after { + display: none; + } +} +ul.step li em { + font-style: normal; + /* min 480px max 767px */ +} +@media (min-width: 480px) and (max-width: 767px) { + ul.step li em { + display: none; + } } /* module productcomments ********************************************************************** */ @@ -1371,7 +1604,7 @@ ul.step li#step_end span:after { } .star, .star a { - background: url(modules/productcomments/img/star.gif) no-repeat 0 0; + background: url(modules/productcomments/img/star.png) no-repeat 0 0; } .cancel a, .star a { @@ -1393,12 +1626,6 @@ div.star_hover a, div.star a:hover { margin: 10px 0 10px 0; } -.pack_price { - float: right; - margin-right: 3px; - font-size: 12px; -} - .confirmation { margin: 0 0 10px; padding: 10px; @@ -1824,6 +2051,13 @@ div.star_hover a, div.star a:hover { -moz-box-shadow: none; box-shadow: none; } +@media (max-width: 480px) { + .cart_navigation > span { + display: block; + width: 100%; + padding-bottom: 15px; + } +} /* step 1 - cart ******************************************************************************* */ .cart_last_product { @@ -1879,12 +2113,23 @@ a.price_discount_delete:hover { #cart_summary tbody td.cart_product img { border: 1px solid #d6d4d4; } +#cart_summary tbody td.cart_unit { + text-align: center; +} #cart_summary tbody td.cart_unit .price span { display: block; } +#cart_summary tbody td.cart_unit .price span.price-percent-reduction { + margin: 5px auto; + display: inline-block; +} #cart_summary tbody td.cart_unit .price span.old-price { text-decoration: line-through; } +#cart_summary tbody td.cart_description small { + display: block; + padding: 5px 0 0 0; +} #cart_summary tfoot td.text-right { font-weight: bold; color: #333; @@ -2088,6 +2333,9 @@ table#cart_summary .gift-icon { .order_carrier_content .delivery_options_address .carrier_title { margin-bottom: 17px; } +.order_carrier_content + div { + padding-bottom: 15px; +} #carrierTable { border: 1px solid #999; @@ -2250,11 +2498,24 @@ p.cheque-indent { margin-bottom: 4px; } #address .form-group .form-control, #identity .form-group .form-control, #account-creation_form .form-group .form-control, #new_account_form .form-group .form-control, #opc_account_form .form-group .form-control, #authentication .form-group .form-control { - width: 271px; + max-width: 271px; } #address .form-group#adress_alias, #identity .form-group#adress_alias, #account-creation_form .form-group#adress_alias, #new_account_form .form-group#adress_alias, #opc_account_form .form-group#adress_alias, #authentication .form-group#adress_alias { margin-bottom: 20px; } +@media (min-width: 1200px) { + #address .form-group.phone-number, #identity .form-group.phone-number, #account-creation_form .form-group.phone-number, #new_account_form .form-group.phone-number, #opc_account_form .form-group.phone-number, #authentication .form-group.phone-number { + float: left; + width: 270px; + margin-right: 13px; + } +} +@media (min-width: 1200px) { + #address .form-group.phone-number + p, #identity .form-group.phone-number + p, #account-creation_form .form-group.phone-number + p, #new_account_form .form-group.phone-number + p, #opc_account_form .form-group.phone-number + p, #authentication .form-group.phone-number + p { + padding: 23px 0 0 0px; + margin-bottom: 0; + } +} #identity #center_column form.std .row, #authentication #center_column form.std .row, #order-opc #center_column form.std .row { margin-left: -5px; @@ -2263,10 +2524,10 @@ p.cheque-indent { #identity #center_column form.std .row .col-xs-4, #authentication #center_column form.std .row .col-xs-4, #order-opc #center_column form.std .row .col-xs-4 { padding-left: 5px; padding-right: 5px; - width: 94px; + max-width: 94px; } #identity #center_column form.std .row .col-xs-4 .form-control, #authentication #center_column form.std .row .col-xs-4 .form-control, #order-opc #center_column form.std .row .col-xs-4 .form-control { - width: 84px; + max-width: 84px; } #identity #center_column .footer_links, #authentication #center_column .footer_links, #order-opc #center_column .footer_links { border: none; @@ -2342,6 +2603,12 @@ p.cheque-indent { #manufacturers_list.list li .mansup-container, #suppliers_list.list li .mansup-container { border-top: 1px solid #d6d4d4; padding: 31px 0 30px 0; + /* < 768 */ +} +@media (max-width: 767px) { + #manufacturers_list.list li .mansup-container, #suppliers_list.list li .mansup-container { + text-align: center; + } } #manufacturers_list.list li:first-child .mansup-container, #suppliers_list.list li:first-child .mansup-container { border-top: 0; @@ -2355,16 +2622,42 @@ p.cheque-indent { } #manufacturers_list.list li .middle-side, #suppliers_list.list li .middle-side { padding-left: 0; + /* < 768 */ +} +@media (max-width: 767px) { + #manufacturers_list.list li .middle-side, #suppliers_list.list li .middle-side { + padding-right: 15px; + padding-left: 15px; + } } #manufacturers_list.list li .right-side-content, #suppliers_list.list li .right-side-content { border-left: 1px solid #d6d4d4; padding: 0 0 32px 31px; min-height: 108px; + /* < 768 */ +} +@media (max-width: 767px) { + #manufacturers_list.list li .right-side-content, #suppliers_list.list li .right-side-content { + min-height: 1px; + padding: 0; + border: none; + } } #manufacturers_list.list li .right-side-content .product-counter, #suppliers_list.list li .right-side-content .product-counter { position: relative; top: -6px; margin-bottom: 12px; + /* < 768 */ +} +@media (max-width: 767px) { + #manufacturers_list.list li .right-side-content .product-counter, #suppliers_list.list li .right-side-content .product-counter { + top: 0; + } +} +#manufacturers_list.grid, #suppliers_list.grid { + /* > 1199 */ + /*768 -> 1199*/ + /*< 768 */ } #manufacturers_list.grid li, #suppliers_list.grid li { text-align: center; @@ -2383,11 +2676,26 @@ p.cheque-indent { #manufacturers_list.grid li .product-container .product-counter, #suppliers_list.grid li .product-container .product-counter { margin-bottom: 12px; } -#manufacturers_list.grid li.first-in-line, #suppliers_list.grid li.first-in-line { - clear: left; +@media (min-width: 1200px) { + #manufacturers_list.grid li.first-in-line, #suppliers_list.grid li.first-in-line { + clear: left; + } + #manufacturers_list.grid li.last-line .product-container, #suppliers_list.grid li.last-line .product-container { + border-bottom: none; + } } -#manufacturers_list.grid li.last-line .product-container, #suppliers_list.grid li.last-line .product-container { - border-bottom: none; +@media (min-width: 768px) and (max-width: 1199px) { + #manufacturers_list.grid li.first-item-of-tablet-line, #suppliers_list.grid li.first-item-of-tablet-line { + clear: left; + } + #manufacturers_list.grid li.last-tablet-line .product-container, #suppliers_list.grid li.last-tablet-line .product-container { + border-bottom: none; + } +} +@media (max-width: 767px) { + #manufacturers_list.grid li.item-last .product-container, #suppliers_list.grid li.item-last .product-container { + border-bottom: none; + } } #manufacturer .description_box, #supplier .description_box { @@ -2400,12 +2708,43 @@ p.cheque-indent { } #manufacturer .bottom-pagination-content, #manufacturer .top-pagination-content, #supplier .bottom-pagination-content, #supplier .top-pagination-content { min-height: 69px; + /* < 480*/ +} +#manufacturer .bottom-pagination-content #pagination, #manufacturer .top-pagination-content #pagination, #supplier .bottom-pagination-content #pagination, #supplier .top-pagination-content #pagination { + /* 480 -> 1199 */ +} +@media (min-width: 480px) and (max-width: 1199px) { + #manufacturer .bottom-pagination-content #pagination, #manufacturer .top-pagination-content #pagination, #supplier .bottom-pagination-content #pagination, #supplier .top-pagination-content #pagination { + width: auto; + text-align: right; + } } #manufacturer .bottom-pagination-content #pagination .showall, #manufacturer .top-pagination-content #pagination .showall, #supplier .bottom-pagination-content #pagination .showall, #supplier .top-pagination-content #pagination .showall { - margin-right: 201px; + margin-right: 0; + /* > 1199 */ +} +@media (min-width: 1200px) { + #manufacturer .bottom-pagination-content #pagination .showall, #manufacturer .top-pagination-content #pagination .showall, #supplier .bottom-pagination-content #pagination .showall, #supplier .top-pagination-content #pagination .showall { + margin-right: 201px; + } +} +@media (max-width: 480px) { + #manufacturer .bottom-pagination-content .product-count, #manufacturer .bottom-pagination-content #pagination, #manufacturer .top-pagination-content .product-count, #manufacturer .top-pagination-content #pagination, #supplier .bottom-pagination-content .product-count, #supplier .bottom-pagination-content #pagination, #supplier .top-pagination-content .product-count, #supplier .top-pagination-content #pagination { + width: 100%; + text-align: center; + } + #manufacturer .bottom-pagination-content .product-count .showall, #manufacturer .bottom-pagination-content #pagination .showall, #manufacturer .top-pagination-content .product-count .showall, #manufacturer .top-pagination-content #pagination .showall, #supplier .bottom-pagination-content .product-count .showall, #supplier .bottom-pagination-content #pagination .showall, #supplier .top-pagination-content .product-count .showall, #supplier .top-pagination-content #pagination .showall { + display: none; + } } #manufacturer .top-pagination-content.bottom-line, #supplier .top-pagination-content.bottom-line { border-bottom: 1px solid #d6d4d4; + /* < 767 */ +} +@media (max-width: 767px) { + #manufacturer .top-pagination-content.bottom-line, #supplier .top-pagination-content.bottom-line { + border-top: 1px solid #d6d4d4; + } } /***************************************************************************************************** @@ -2426,8 +2765,27 @@ table.discount i.icon-remove { /***************************************************************************************************** GUEST TRACKING ******************************************************************************************************/ +#guestTracking { + /* > 1200px */ +} #guestTracking .form-control { - width: 271px; + max-width: 271px; +} +@media (min-width: 1200px) { + #guestTracking .form-group { + overflow: hidden; + } + #guestTracking .form-group i { + padding-left: 10px; + } + #guestTracking .form-control { + float: left; + } + #guestTracking label { + float: left; + clear: both; + width: 100%; + } } /***************************************************************************************************** @@ -2468,10 +2826,22 @@ table.discount i.icon-remove { #pagenotfound .pagenotfound label { font-weight: normal; } +@media (max-width: 767px) { + #pagenotfound .pagenotfound label { + display: block; + } +} #pagenotfound .pagenotfound .form-control { max-width: 293px; display: inline-block; margin-right: 5px; + /* max 767px */ +} +@media (max-width: 767px) { + #pagenotfound .pagenotfound .form-control { + margin: 0 auto 15px auto; + display: block; + } } #pagenotfound .pagenotfound .buttons { padding: 48px 0 20px 0; @@ -2605,7 +2975,7 @@ form#sendComment h3 { } .star, .star a { - background: url(modules/productcomments/img/star.gif) no-repeat 0 0; + background: url(modules/productcomments/img/star.png) no-repeat 0 0; } div.star_on a { @@ -2662,7 +3032,7 @@ div.star_hover a, div.star a:hover { float: left; } .radio-inline .checker span, .checkbox .checker span { - top: 3px; + top: 0px; } .radio-inline div.radio, .checkbox div.radio { display: inline-block; @@ -2671,3 +3041,26 @@ div.star_hover a, div.star a:hover { float: left; top: 0px; } + +.fancybox-skin { + background: #fff !important; +} + +.fancybox-skin .fancybox-close { + top: 8px; + right: 8px; + width: 28px; + height: 28px; + background: none; + font-size: 28px; + line-height: 28px; + color: #333333; + text-align: center; +} +.fancybox-skin .fancybox-close:hover { + color: #515151; +} +.fancybox-skin .fancybox-close:after { + content: "ď—"; + font-family: "FontAwesome"; +} diff --git a/themes/default-bootstrap/css/jquery/footable.core.css b/themes/default-bootstrap/css/jquery/footable.core.css new file mode 100644 index 000000000..b5991721f --- /dev/null +++ b/themes/default-bootstrap/css/jquery/footable.core.css @@ -0,0 +1,61 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); +.footable { + width: 100%; +} +.footable.breakpoint > tbody > tr.footable-detail-show > td { + border-bottom: none; +} +.footable.breakpoint > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + font-family: "FontAwesome"; + content: "ď…†"; +} +.footable.breakpoint > tbody > tr:hover:not(.footable-row-detail) { + cursor: pointer; +} +.footable.breakpoint > tbody > tr > td.footable-cell-detail { + background: #eee; + border-top: none; +} +.footable.breakpoint > tbody > tr > td > span.footable-toggle { + display: inline-block; + font-family: "FontAwesome"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + -webkit-font-smoothing: antialiased; + padding-right: 5px; + font-size: 14px; +} +.footable.breakpoint > tbody > tr > td > span.footable-toggle:before { + font-family: "FontAwesome"; + content: "ďľ"; +} +.footable.breakpoint.toggle-medium > tbody > tr > td > span.footable-toggle { + font-size: 18px; +} +.footable.breakpoint.toggle-large > tbody > tr > td > span.footable-toggle { + font-size: 24px; +} +.footable .footable-row-detail-inner { + display: table; +} +.footable .footable-row-detail-row { + display: table-row; + line-height: 1.5em; +} +.footable .footable-row-detail-group { + display: block; + line-height: 2em; + font-size: 1.2em; + font-weight: bold; +} +.footable .footable-row-detail-name { + display: table-cell; + font-weight: bold; + padding-right: 0.5em; +} +.footable .footable-row-detail-value { + display: table-cell; +} diff --git a/themes/default-bootstrap/css/jquery/jquery.bxslider.css b/themes/default-bootstrap/css/jquery/jquery.bxslider.css new file mode 100644 index 000000000..33bb54315 --- /dev/null +++ b/themes/default-bootstrap/css/jquery/jquery.bxslider.css @@ -0,0 +1,181 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); +/** + * BxSlider v4.0 - Fully loaded, responsive content slider + * http://bxslider.com + * + * Written by: Steven Wanderski, 2012 + * http://stevenwanderski.com + * (while drinking Belgian ales and listening to jazz) + * + * CEO and founder of bxCreative, LTD + * http://bxcreative.com + */ +#crossselling_list, .accessories-block .block_content, #productscategory_list { + /** RESET AND LAYOUT + ===================================*/ + /** THEME + ===================================*/ + /* LOADER */ + /* PAGER */ + /* DIRECTION CONTROLS (NEXT / PREV) */ + /* AUTO CONTROLS (START / STOP) */ + /* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ + /* IMAGE CAPTIONS */ +} +#crossselling_list .bx-wrapper, .accessories-block .block_content .bx-wrapper, #productscategory_list .bx-wrapper { + position: relative; + padding: 0; + *zoom: 1; + margin: 0 !important; +} +#crossselling_list .bx-wrapper img, .accessories-block .block_content .bx-wrapper img, #productscategory_list .bx-wrapper img { + max-width: 100%; + display: block; +} +#crossselling_list .bx-wrapper .bx-pager, +#crossselling_list .bx-wrapper .bx-controls-auto, .accessories-block .block_content .bx-wrapper .bx-pager, +.accessories-block .block_content .bx-wrapper .bx-controls-auto, #productscategory_list .bx-wrapper .bx-pager, +#productscategory_list .bx-wrapper .bx-controls-auto { + position: absolute; + bottom: -30px; + width: 100%; +} +#crossselling_list .bx-wrapper .bx-loading, .accessories-block .block_content .bx-wrapper .bx-loading, #productscategory_list .bx-wrapper .bx-loading { + min-height: 50px; + background: url(images/bx_loader.gif) center center no-repeat; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 2000; + display: none; +} +#crossselling_list .bx-wrapper .bx-pager, .accessories-block .block_content .bx-wrapper .bx-pager, #productscategory_list .bx-wrapper .bx-pager { + text-align: center; + font-size: .85em; + font-family: Arial; + font-weight: bold; + color: #666; + padding-top: 20px; +} +#crossselling_list .bx-wrapper .bx-pager .bx-pager-item, +#crossselling_list .bx-wrapper .bx-controls-auto .bx-controls-auto-item, .accessories-block .block_content .bx-wrapper .bx-pager .bx-pager-item, +.accessories-block .block_content .bx-wrapper .bx-controls-auto .bx-controls-auto-item, #productscategory_list .bx-wrapper .bx-pager .bx-pager-item, +#productscategory_list .bx-wrapper .bx-controls-auto .bx-controls-auto-item { + display: inline-block; + *zoom: 1; + *display: inline; +} +#crossselling_list .bx-wrapper .bx-pager.bx-default-pager a, .accessories-block .block_content .bx-wrapper .bx-pager.bx-default-pager a, #productscategory_list .bx-wrapper .bx-pager.bx-default-pager a { + text-indent: -9999px; + display: block; + width: 10px; + height: 10px; + margin: 0 5px; + background: #000; + outline: 0; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; +} +#crossselling_list .bx-wrapper .bx-pager.bx-default-pager a:hover, +#crossselling_list .bx-wrapper .bx-pager.bx-default-pager a.active, .accessories-block .block_content .bx-wrapper .bx-pager.bx-default-pager a:hover, +.accessories-block .block_content .bx-wrapper .bx-pager.bx-default-pager a.active, #productscategory_list .bx-wrapper .bx-pager.bx-default-pager a:hover, +#productscategory_list .bx-wrapper .bx-pager.bx-default-pager a.active { + background: #000; +} +#crossselling_list .bx-wrapper .bx-controls-direction a, .accessories-block .block_content .bx-wrapper .bx-controls-direction a, #productscategory_list .bx-wrapper .bx-controls-direction a { + margin-top: 38px; + height: 20px; + width: 20px; + line-height: 0; + position: absolute; + top: 40%; + margin-top: -10px; + font-size: 0; + overflow: hidden; +} +#crossselling_list .bx-wrapper .bx-controls-direction a:before, .accessories-block .block_content .bx-wrapper .bx-controls-direction a:before, #productscategory_list .bx-wrapper .bx-controls-direction a:before { + padding-left: 2px; + color: #c0c0c0; + font-family: FontAwesome; + font-size: 20px; + line-height: 22px; +} +#crossselling_list .bx-wrapper .bx-controls-direction a:hover:before, .accessories-block .block_content .bx-wrapper .bx-controls-direction a:hover:before, #productscategory_list .bx-wrapper .bx-controls-direction a:hover:before { + color: #333; +} +#crossselling_list .bx-next, .accessories-block .block_content .bx-next, #productscategory_list .bx-next { + right: 10px; +} +#crossselling_list .bx-next:before, .accessories-block .block_content .bx-next:before, #productscategory_list .bx-next:before { + content: ""; +} +#crossselling_list .bx-prev, .accessories-block .block_content .bx-prev, #productscategory_list .bx-prev { + left: 10px; +} +#crossselling_list .bx-prev:before, .accessories-block .block_content .bx-prev:before, #productscategory_list .bx-prev:before { + content: "ď„·"; +} +#crossselling_list .bx-wrapper .bx-controls-direction a.disabled, .accessories-block .block_content .bx-wrapper .bx-controls-direction a.disabled, #productscategory_list .bx-wrapper .bx-controls-direction a.disabled { + display: none; +} +#crossselling_list .bx-wrapper .bx-controls-auto, .accessories-block .block_content .bx-wrapper .bx-controls-auto, #productscategory_list .bx-wrapper .bx-controls-auto { + text-align: center; +} +#crossselling_list .bx-wrapper .bx-controls-auto .bx-start, .accessories-block .block_content .bx-wrapper .bx-controls-auto .bx-start, #productscategory_list .bx-wrapper .bx-controls-auto .bx-start { + display: block; + text-indent: -9999px; + width: 10px; + height: 11px; + outline: 0; + background: url(images/controls.png) -86px -11px no-repeat; + margin: 0 3px; +} +#crossselling_list .bx-wrapper .bx-controls-auto .bx-start:hover, +#crossselling_list .bx-wrapper .bx-controls-auto .bx-start.active, .accessories-block .block_content .bx-wrapper .bx-controls-auto .bx-start:hover, +.accessories-block .block_content .bx-wrapper .bx-controls-auto .bx-start.active, #productscategory_list .bx-wrapper .bx-controls-auto .bx-start:hover, +#productscategory_list .bx-wrapper .bx-controls-auto .bx-start.active { + background-position: -86px 0; +} +#crossselling_list .bx-wrapper .bx-controls-auto .bx-stop, .accessories-block .block_content .bx-wrapper .bx-controls-auto .bx-stop, #productscategory_list .bx-wrapper .bx-controls-auto .bx-stop { + display: block; + text-indent: -9999px; + width: 9px; + height: 11px; + outline: 0; + background: url(images/controls.png) -86px -44px no-repeat; + margin: 0 3px; +} +#crossselling_list .bx-wrapper .bx-controls-auto .bx-stop:hover, +#crossselling_list .bx-wrapper .bx-controls-auto .bx-stop.active, .accessories-block .block_content .bx-wrapper .bx-controls-auto .bx-stop:hover, +.accessories-block .block_content .bx-wrapper .bx-controls-auto .bx-stop.active, #productscategory_list .bx-wrapper .bx-controls-auto .bx-stop:hover, +#productscategory_list .bx-wrapper .bx-controls-auto .bx-stop.active { + background-position: -86px -33px; +} +#crossselling_list .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager, .accessories-block .block_content .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager, #productscategory_list .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { + text-align: left; + width: 80%; +} +#crossselling_list .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto, .accessories-block .block_content .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto, #productscategory_list .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { + right: 0; + width: 35px; +} +#crossselling_list .bx-wrapper .bx-caption, .accessories-block .block_content .bx-wrapper .bx-caption, #productscategory_list .bx-wrapper .bx-caption { + position: absolute; + bottom: 0; + left: 0; + background: #666\9; + background: rgba(80, 80, 80, 0); + width: 100%; +} +#crossselling_list .bx-wrapper .bx-caption span, .accessories-block .block_content .bx-wrapper .bx-caption span, #productscategory_list .bx-wrapper .bx-caption span { + color: #fff; + font-family: Arial; + display: block; + font-size: .85em; + padding: 10px; +} diff --git a/themes/default-bootstrap/css/jquery/owl-carousel/owl.carousel.css b/themes/default-bootstrap/css/jquery/owl-carousel/owl.carousel.css deleted file mode 100644 index 0e3ec8ea3..000000000 --- a/themes/default-bootstrap/css/jquery/owl-carousel/owl.carousel.css +++ /dev/null @@ -1,404 +0,0 @@ -/* - * Core Owl Carousel CSS File - * v1.24 - */ -/* clearfix */ -.owl-carousel .owl-wrapper:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} - -/* display none until init */ -.owl-carousel { - display: none; - position: relative; - width: 100%; - -ms-touch-action: pan-y; - overflow: hidden; -} - -.owl-carousel .owl-wrapper { - display: none; - position: relative; - -webkit-transform: translate3d(0px, 0px, 0px); -} - -.owl-carousel .owl-wrapper-outer { - overflow: hidden; - position: relative; - margin: 0 -10px; -} - -.owl-carousel .owl-wrapper-outer.autoHeight { - -webkit-transition: height 500ms ease-in-out; - -moz-transition: height 500ms ease-in-out; - -ms-transition: height 500ms ease-in-out; - -o-transition: height 500ms ease-in-out; - transition: height 500ms ease-in-out; -} - -.owl-carousel .owl-item { - float: left; - width: 200px !important; -} - -.owl-controls .owl-page, -.owl-controls .owl-buttons div { - cursor: pointer; -} - -.owl-controls { - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -/* mouse grab icon */ -.grabbing { - cursor: url(grabbing.png) 8 8, move; -} - -/* fix */ -.owl-carousel .owl-wrapper, -.owl-carousel .owl-item { - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); -} - -/* CSS3 Transitions */ -.owl-origin { - -webkit-perspective: 1200px; - -webkit-perspective-origin-x: 50%; - -webkit-perspective-origin-y: 50%; - -moz-perspective: 1200px; - -moz-perspective-origin-x: 50%; - -moz-perspective-origin-y: 50%; - perspective: 1200px; -} - -/* fade */ -.owl-fade-out { - z-index: 10; - -webkit-animation: fadeOut .7s both ease; - -moz-animation: fadeOut .7s both ease; - animation: fadeOut .7s both ease; -} - -.owl-fade-in { - -webkit-animation: fadeIn .7s both ease; - -moz-animation: fadeIn .7s both ease; - animation: fadeIn .7s both ease; -} - -/* backSlide */ -.owl-backSlide-out { - -webkit-animation: backSlideOut 1s both ease; - -moz-animation: backSlideOut 1s both ease; - animation: backSlideOut 1s both ease; -} - -.owl-backSlide-in { - -webkit-animation: backSlideIn 1s both ease; - -moz-animation: backSlideIn 1s both ease; - animation: backSlideIn 1s both ease; -} - -/* goDown */ -.owl-goDown-out { - -webkit-animation: scaleToFade .7s ease both; - -moz-animation: scaleToFade .7s ease both; - animation: scaleToFade .7s ease both; -} - -.owl-goDown-in { - -webkit-animation: goDown .6s ease both; - -moz-animation: goDown .6s ease both; - animation: goDown .6s ease both; -} - -/* scaleUp */ -.owl-fadeUp-in { - -webkit-animation: scaleUpFrom .5s ease both; - -moz-animation: scaleUpFrom .5s ease both; - animation: scaleUpFrom .5s ease both; -} - -.owl-fadeUp-out { - -webkit-animation: scaleUpTo .5s ease both; - -moz-animation: scaleUpTo .5s ease both; - animation: scaleUpTo .5s ease both; -} - -/* Keyframes */ -/*empty*/ -@-webkit-keyframes empty { - 0% { - opacity: 1; - } -} - -@-moz-keyframes empty { - 0% { - opacity: 1; - } -} - -@keyframes empty { - 0% { - opacity: 1; - } -} - -@-webkit-keyframes fadeIn { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -@-moz-keyframes fadeIn { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -@-webkit-keyframes fadeOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -} - -@-moz-keyframes fadeOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -} - -@keyframes fadeOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -} - -@-webkit-keyframes backSlideOut { - 25% { - opacity: .5; - -webkit-transform: translateZ(-500px); - } - - 75% { - opacity: .5; - -webkit-transform: translateZ(-500px) translateX(-200%); - } - - 100% { - opacity: .5; - -webkit-transform: translateZ(-500px) translateX(-200%); - } -} - -@-moz-keyframes backSlideOut { - 25% { - opacity: .5; - -moz-transform: translateZ(-500px); - } - - 75% { - opacity: .5; - -moz-transform: translateZ(-500px) translateX(-200%); - } - - 100% { - opacity: .5; - -moz-transform: translateZ(-500px) translateX(-200%); - } -} - -@keyframes backSlideOut { - 25% { - opacity: .5; - transform: translateZ(-500px); - } - - 75% { - opacity: .5; - transform: translateZ(-500px) translateX(-200%); - } - - 100% { - opacity: .5; - transform: translateZ(-500px) translateX(-200%); - } -} - -@-webkit-keyframes backSlideIn { - 0%, 25% { - opacity: .5; - -webkit-transform: translateZ(-500px) translateX(200%); - } - - 75% { - opacity: .5; - -webkit-transform: translateZ(-500px); - } - - 100% { - opacity: 1; - -webkit-transform: translateZ(0) translateX(0); - } -} - -@-moz-keyframes backSlideIn { - 0%, 25% { - opacity: .5; - -moz-transform: translateZ(-500px) translateX(200%); - } - - 75% { - opacity: .5; - -moz-transform: translateZ(-500px); - } - - 100% { - opacity: 1; - -moz-transform: translateZ(0) translateX(0); - } -} - -@keyframes backSlideIn { - 0%, 25% { - opacity: .5; - transform: translateZ(-500px) translateX(200%); - } - - 75% { - opacity: .5; - transform: translateZ(-500px); - } - - 100% { - opacity: 1; - transform: translateZ(0) translateX(0); - } -} - -@-webkit-keyframes scaleToFade { - to { - opacity: 0; - -webkit-transform: scale(0.8); - } -} - -@-moz-keyframes scaleToFade { - to { - opacity: 0; - -moz-transform: scale(0.8); - } -} - -@keyframes scaleToFade { - to { - opacity: 0; - transform: scale(0.8); - } -} - -@-webkit-keyframes goDown { - from { - -webkit-transform: translateY(-100%); - } -} - -@-moz-keyframes goDown { - from { - -moz-transform: translateY(-100%); - } -} - -@keyframes goDown { - from { - transform: translateY(-100%); - } -} - -@-webkit-keyframes scaleUpFrom { - from { - opacity: 0; - -webkit-transform: scale(1.5); - } -} - -@-moz-keyframes scaleUpFrom { - from { - opacity: 0; - -moz-transform: scale(1.5); - } -} - -@keyframes scaleUpFrom { - from { - opacity: 0; - transform: scale(1.5); - } -} - -@-webkit-keyframes scaleUpTo { - to { - opacity: 0; - -webkit-transform: scale(1.5); - } -} - -@-moz-keyframes scaleUpTo { - to { - opacity: 0; - -moz-transform: scale(1.5); - } -} - -@keyframes scaleUpTo { - to { - opacity: 0; - transform: scale(1.5); - } -} diff --git a/themes/default-bootstrap/css/jquery/owl-carousel/owl.theme.css b/themes/default-bootstrap/css/jquery/owl-carousel/owl.theme.css deleted file mode 100644 index 038962bec..000000000 --- a/themes/default-bootstrap/css/jquery/owl-carousel/owl.theme.css +++ /dev/null @@ -1,93 +0,0 @@ -@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); -/* -* Owl Carousel Owl Demo Theme -* v1.24 -*/ -.owl-theme { - /* Styling Next and Prev buttons */ - /* preloading images */ -} -.owl-theme .owl-controls { - margin-top: 10px; - text-align: center; -} -.owl-theme .owl-controls { - /* Styling Pagination*/ - /* If PaginationNumbers is true */ -} -.owl-theme .owl-controls .owl-buttons div { - margin-top: 38px; - height: 20px; - width: 20px; - line-height: 0; - position: absolute; - top: 40%; - margin-top: -10px; - font-size: 0; - overflow: hidden; -} -.owl-theme .owl-controls .owl-buttons div:before { - padding-left: 2px; - color: #c0c0c0; - font-family: FontAwesome; - font-size: 20px; - line-height: 22px; -} -.owl-theme .owl-controls .owl-buttons div:hover:before { - color: #333; -} -.owl-theme .owl-controls .owl-next { - right: 10px; -} -.owl-theme .owl-controls .owl-next:before { - content: ""; -} -.owl-theme .owl-controls .owl-prev { - left: 10px; -} -.owl-theme .owl-controls .owl-prev:before { - content: "ď„·"; -} -.owl-theme .owl-controls .owl-pagination { - display: none; -} -.owl-theme .owl-controls .owl-page { - display: inline-block; - zoom: 1; - *display: inline; - /*IE7 life-saver */ -} -.owl-theme .owl-controls .owl-page span { - display: block; - width: 12px; - height: 12px; - margin: 5px 7px; - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); - opacity: 0; - -webkit-border-radius: 20px; - -moz-border-radius: 20px; - -ms-border-radius: 20px; - -o-border-radius: 20px; - border-radius: 20px; - background: #869791; -} -.owl-theme .owl-controls .owl-page.active span, .owl-theme .owl-controls.clickable .owl-page:hover span { - filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); - opacity: 1; -} -.owl-theme .owl-controls .owl-page span.owl-numbers { - height: auto; - width: auto; - color: #FFF; - padding: 2px 10px; - font-size: 12px; - -webkit-border-radius: 30px; - -moz-border-radius: 30px; - -ms-border-radius: 30px; - -o-border-radius: 30px; - border-radius: 30px; -} -.owl-theme .owl-item.loading { - min-height: 150px; - background: url(AjaxLoader.gif) no-repeat center center; -} diff --git a/themes/default-bootstrap/css/jquery/responsive-tables.css b/themes/default-bootstrap/css/jquery/responsive-tables.css new file mode 100644 index 000000000..f0a905c62 --- /dev/null +++ b/themes/default-bootstrap/css/jquery/responsive-tables.css @@ -0,0 +1,38 @@ +/* Foundation v2.1.4 http://foundation.zurb.com */ +/* Artfully masterminded by ZURB */ + +/* -------------------------------------------------- + Table of Contents +----------------------------------------------------- +:: Shared Styles +:: Page Name 1 +:: Page Name 2 +*/ + + +/* ----------------------------------------- + Shared Styles +----------------------------------------- */ + +table th { font-weight: bold; } +table td, table th { padding: 9px 10px; text-align: left; } + +/* Mobile */ +@media only screen and (max-width: 767px) { + + table.responsive { margin-bottom: 0; } + + .pinned { position: absolute; left: 0; top: 0; background: #fff; width: 35%; overflow: hidden; overflow-x: scroll; border-right: 1px solid #ccc; border-left: 1px solid #ccc; } + .pinned table { border-right: none; border-left: none; width: 100%; } + .pinned table th, .pinned table td { white-space: nowrap; } + .pinned td:last-child { border-bottom: 0; } + + div.table-wrapper { position: relative; margin-bottom: 20px; overflow: hidden; border-right: 1px solid #ccc; } + div.table-wrapper div.scrollable { margin-left: 35%; } + div.table-wrapper div.scrollable { overflow: scroll; overflow-y: hidden; } + + table.responsive td, table.responsive th { position: relative; white-space: nowrap; overflow: hidden; } + table.responsive th:first-child, table.responsive td:first-child, table.responsive td:first-child, table.responsive.pinned td { display: none; } + + +} diff --git a/themes/default-bootstrap/css/maintenance.css b/themes/default-bootstrap/css/maintenance.css index 4afbeb2e7..e157199b6 100644 --- a/themes/default-bootstrap/css/maintenance.css +++ b/themes/default-bootstrap/css/maintenance.css @@ -3,9 +3,15 @@ Maintenance Page Styles **********************************************************************/ #maintenance { - margin: 126px 0 0 0; - padding: 91px 48px 365px 297px; - background: url(../img/bg_maintenance.png) no-repeat; + margin-top: 50px; + /* > 1200 */ +} +@media (min-width: 1200px) { + #maintenance { + margin: 126px 0 0 0; + padding: 91px 48px 365px 297px; + background: url(../img/bg_maintenance.png) no-repeat; + } } #maintenance .logo { margin-bottom: 31px; diff --git a/themes/default-bootstrap/css/modules/blockcart/blockcart.css b/themes/default-bootstrap/css/modules/blockcart/blockcart.css index a029bf17f..9eb85e975 100644 --- a/themes/default-bootstrap/css/modules/blockcart/blockcart.css +++ b/themes/default-bootstrap/css/modules/blockcart/blockcart.css @@ -51,9 +51,11 @@ position: relative; } #cart_block dd { - padding: 10px 20px; position: relative; } +#cart_block dd li { + padding: 10px 20px; +} #cart_block dd li .deleteCustomizableProduct { top: 12px !important; right: 15px !important; @@ -98,7 +100,7 @@ display: none; position: absolute; right: 0; - top: 132px; + top: 95px; height: auto; width: 270px; background: #484848; @@ -153,7 +155,8 @@ } #cart_block #cart_block_shipping_cost, -#cart_block #cart_block_total { +#cart_block #cart_block_total, +#cart_block #cart_block_wrapping_cost { float: right; } @@ -217,6 +220,8 @@ } #layer_cart .layer_cart_product { padding: 30px 30px 30px 30px; + overflow: hidden; + position: static; } #layer_cart .layer_cart_product h2 { font: 400 23px/29px Arial, Helvetica, sans-serif; @@ -224,12 +229,25 @@ margin-bottom: 22px; padding-right: 100px; } +@media (max-width: 767px) { + #layer_cart .layer_cart_product h2 { + font-size: 18px; + padding-right: 0; + line-height: normal; + } +} #layer_cart .layer_cart_product h2 i { font-size: 30px; line-height: 30px; float: left; padding-right: 8px; } +@media (max-width: 767px) { + #layer_cart .layer_cart_product h2 i { + font-size: 22px; + line-height: 22px; + } +} #layer_cart .layer_cart_product .product-image-container { max-width: 178px; border: 1px solid #d6d4d4; @@ -237,6 +255,13 @@ float: left; margin-right: 30px; } +@media (max-width: 480px) { + #layer_cart .layer_cart_product .product-image-container { + float: none; + margin-right: 0; + margin-bottom: 10px; + } +} #layer_cart .layer_cart_product .layer_cart_product_info { padding: 38px 0 0 0; } @@ -253,15 +278,30 @@ #layer_cart .layer_cart_cart { background: #fafafa; border-left: 1px solid #d6d4d4; - padding: 21px 30px 90px 30px; + padding: 21px 30px 170px 30px; -webkit-border-radius: 0px 4px 4px 0px; -moz-border-radius: 0px 4px 4px 0px; -ms-border-radius: 0px 4px 4px 0px; -o-border-radius: 0px 4px 4px 0px; border-radius: 0px 4px 4px 0px; - min-height: 318px; position: relative; } +@media (min-width: 1200px) { + #layer_cart .layer_cart_cart { + min-height: 318px; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + #layer_cart .layer_cart_cart { + min-height: 360px; + } +} +@media (max-width: 991px) { + #layer_cart .layer_cart_cart { + border-left: none; + border-top: 1px solid #d6d4d4; + } +} #layer_cart .layer_cart_cart h2 { font: 400 23px/29px Arial, Helvetica, sans-serif; color: #333; @@ -269,6 +309,11 @@ padding-bottom: 13px; margin-bottom: 17px; } +@media (max-width: 767px) { + #layer_cart .layer_cart_cart h2 { + font-size: 18px; + } +} #layer_cart .layer_cart_cart .layer_cart_row { padding: 0 0 7px 0; } @@ -289,7 +334,7 @@ padding-right: 5px; color: #777777; } -#layer_cart .layer_cart_cart .cross { +#layer_cart .cross { position: absolute; right: 7px; top: 8px; @@ -297,15 +342,16 @@ height: 25px; cursor: pointer; color: #333; + z-index: 2; } -#layer_cart .layer_cart_cart .cross:before { +#layer_cart .cross:before { content: "ď—"; display: block; font-family: "FontAwesome"; font-size: 25px; line-height: 25px; } -#layer_cart .layer_cart_cart .cross:hover { +#layer_cart .cross:hover { color: #515151; } #layer_cart .continue { @@ -315,18 +361,84 @@ padding: 0px; } -#blockcart_list { - width: 232px; +/************************************************************************ + Layer Cart Caroucel +*************************************************************************/ +#layer_cart .crossseling .crossseling-content { + border-top: 1px solid #d6d4d4; + padding: 26px 30px 40px 30px; + position: relative; +} +#layer_cart .crossseling h2 { + font: 400 23px/26px Arial, Helvetica, sans-serif; + color: #333333; + margin-bottom: 25px; +} +#layer_cart .crossseling #blockcart_list { + max-width: 773px; + width: 84%; + margin: 0 auto; overflow: hidden; } - -#blockcart_list ul { +#layer_cart .crossseling #blockcart_list ul { display: block; - height: 90px; } - -#blockcart_list li { - list-style-type: none; +#layer_cart .crossseling #blockcart_list ul li { float: left; - width: 58px; + width: 178px; + margin: 0 0px 0 0; +} +#layer_cart .crossseling #blockcart_list ul li .product-image-container { + border: 1px solid #d6d4d4; + text-align: center; + padding: 5px; + margin-bottom: 15px; +} +#layer_cart .crossseling #blockcart_list ul li .product-image-container img { + width: 100%; +} +#layer_cart .crossseling #blockcart_list ul li .product-name { + padding-bottom: 5px; +} +#layer_cart .crossseling #blockcart_list ul li .product-name a { + font-size: 15px; + line-height: 20px; +} +#layer_cart .crossseling #blockcart_list a.bx-prev, #layer_cart .crossseling #blockcart_list a.bx-next { + display: block; + font-family: "FontAwesome"; + font-size: 20px; + line-height: 20px; + width: 20px; + height: 20px; + color: #333; + text-indent: -5000px; + position: absolute; + top: 45%; + margin-top: -20px; +} +#layer_cart .crossseling #blockcart_list a.bx-prev:after, #layer_cart .crossseling #blockcart_list a.bx-next:after { + display: block; + text-indent: 0; +} +#layer_cart .crossseling #blockcart_list a.bx-prev:hover, #layer_cart .crossseling #blockcart_list a.bx-next:hover { + color: #c0c0c0; +} +#layer_cart .crossseling #blockcart_list a.bx-prev.disabled, #layer_cart .crossseling #blockcart_list a.bx-next.disabled { + display: none; +} +#layer_cart .crossseling #blockcart_list a.bx-prev { + left: 5%; +} +#layer_cart .crossseling #blockcart_list a.bx-prev:after { + content: "ď„·"; +} +#layer_cart .crossseling #blockcart_list a.bx-next { + right: 5%; +} +#layer_cart .crossseling #blockcart_list a.bx-next:after { + content: ""; +} +#layer_cart .crossseling #blockcart_list .bx-controls { + overflow: hidden; } diff --git a/themes/default-bootstrap/css/modules/blockwishlist/blockwishlist.css b/themes/default-bootstrap/css/modules/blockwishlist/blockwishlist.css index 612247285..2bf4cef49 100644 --- a/themes/default-bootstrap/css/modules/blockwishlist/blockwishlist.css +++ b/themes/default-bootstrap/css/modules/blockwishlist/blockwishlist.css @@ -22,22 +22,6 @@ margin-right: 6px; } -/* bt add */ -.add_wishlist_button a { - padding: 5px 7px 5px 18px; -} - -.add_wishlist_button a span { - z-index: 10; - display: block; - position: absolute; - top: -1px; - left: -12px; - height: 26px; - width: 26px; - background: url(img/icon/pict_add_wishlist.png) no-repeat 0 0 transparent; -} - /* block */ #wishlist_block #wishlist_block_list { margin-bottom: 20px; @@ -118,21 +102,23 @@ } #module-blockwishlist-mywishlist .wishlistLinkTop ul.display_list { - border-bottom: 1px dotted #ccc; + border-bottom: 1px solid #d6d4d4; margin-bottom: 20px; } +#module-blockwishlist-mywishlist .wishlistLinkTop ul.display_list a { + display: inline-block; + color: #333; + margin: 10px 10px 10px 0px; + font-weight: bold; +} +#module-blockwishlist-mywishlist .wishlistLinkTop ul.display_list a:hover { + color: #515151; +} #module-blockwishlist-mywishlist .wishlistLinkTop li { float: left; } -#module-blockwishlist-mywishlist .wishlistLinkTop .display_list li a { - display: inline-block; - padding: 7px 11px 5px 22px; - color: #333; - background: url(img/arrow_right_2.png) no-repeat 10px 10px transparent; -} - #module-blockwishlist-mywishlist .wishlistLinkTop #hideSendWishlist { float: right; } @@ -144,17 +130,53 @@ /* wlp_bought ****************************************** */ /* wlp_bought_list */ -ul.wlp_bought_list li .inner-content { +ul.wlp_bought_list li { + margin-bottom: 30px; + /*> 992px*/ + /*768px x 991px*/ +} +ul.wlp_bought_list li .product_image { + padding: 9px; + border: 1px solid #d6d4d4; + margin-bottom: 20px; + max-width: 270px; +} +ul.wlp_bought_list li .product-name { + margin-bottom: 10px; + padding-right: 20px; +} +ul.wlp_bought_list li .product-name small { + display: block; + font-size: 11px; +} +ul.wlp_bought_list li .product-name small a { + font-size: 11px; +} +ul.wlp_bought_list li .product_infos { position: relative; } +ul.wlp_bought_list li .btn_action .btn { + margin-bottom: 10px; +} +@media (min-width: 992px) { + ul.wlp_bought_list li.first-in-line { + clear: left; + } +} +@media (min-width: 768px) and (max-width: 991px) { + ul.wlp_bought_list li.first-item-of-tablet-line { + clear: left; + } +} + +.wishlistLinkTop .submit { + margin-bottom: 30px; +} ul.wlp_bought_list li .lnkdel { position: absolute; - top: 5px; - right: 5px; + top: 0px; + right: 0px; display: block; - height: 12px; - width: 12px; - text-indent: -5000px; - background: url(img/icon/delete.gif) no-repeat 0 0; + font-size: 14px; } diff --git a/themes/default-bootstrap/css/modules/crossselling/crossselling.css b/themes/default-bootstrap/css/modules/crossselling/crossselling.css new file mode 100644 index 000000000..de6746ee6 --- /dev/null +++ b/themes/default-bootstrap/css/modules/crossselling/crossselling.css @@ -0,0 +1 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); diff --git a/themes/default-bootstrap/css/modules/homeslider/bx_styles.css b/themes/default-bootstrap/css/modules/homeslider/bx_styles.css index bdefa938f..b0696ef66 100644 --- a/themes/default-bootstrap/css/modules/homeslider/bx_styles.css +++ b/themes/default-bootstrap/css/modules/homeslider/bx_styles.css @@ -15,9 +15,15 @@ #homepage-slider { padding-left: 0; padding-right: 0; - padding-top: 30px; - margin-bottom: 30px; + padding-top: 29px; + margin-bottom: 35px; max-width: 779px; + position: relative; + z-index: 1; +} +#homepage-slider #homeslider { + margin: 0 auto; + padding: 0; } /***************************************************************************** @@ -25,35 +31,38 @@ ********************************************************************************/ /** RESET AND LAYOUT ===================================*/ -.bx-wrapper { +#homepage-slider { + /** THEME + ===================================*/ + /* LOADER */ + /* PAGER */ + /* DIRECTION CONTROLS (NEXT / PREV) */ + /* AUTO CONTROLS (START / STOP) */ + /* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ + /* IMAGE CAPTIONS */ +} +#homepage-slider .bx-wrapper { position: relative; padding: 0; *zoom: 1; } -.bx-wrapper a { +#homepage-slider .bx-wrapper a { display: block; } -.bx-wrapper img { +#homepage-slider .bx-wrapper img { display: block; max-width: 100%; - height: auto; } - -/** THEME -===================================*/ -.bx-wrapper .bx-viewport { +#homepage-slider .bx-wrapper .bx-viewport { width: 100%; } - -.bx-wrapper .bx-pager, -.bx-wrapper .bx-controls-auto { +#homepage-slider .bx-wrapper .bx-pager, +#homepage-slider .bx-wrapper .bx-controls-auto { position: absolute; bottom: -30px; width: 100%; } - -/* LOADER */ -.bx-wrapper .bx-loading { +#homepage-slider .bx-wrapper .bx-loading { min-height: 50px; background: url(images/bx_loader.gif) center center no-repeat white; height: 100%; @@ -63,9 +72,7 @@ left: 0; z-index: 2000; } - -/* PAGER */ -.bx-wrapper .bx-pager { +#homepage-slider .bx-wrapper .bx-pager { text-align: center; font-size: .85em; font-family: Arial; @@ -73,15 +80,13 @@ color: #666; padding-top: 20px; } - -.bx-wrapper .bx-pager .bx-pager-item, -.bx-wrapper .bx-controls-auto .bx-controls-auto-item { +#homepage-slider .bx-wrapper .bx-pager .bx-pager-item, +#homepage-slider .bx-wrapper .bx-controls-auto .bx-controls-auto-item { display: inline-block; *zoom: 1; *display: inline; } - -.bx-wrapper .bx-pager.bx-default-pager a { +#homepage-slider .bx-wrapper .bx-pager.bx-default-pager a { background: #666; text-indent: -9999px; display: block; @@ -93,52 +98,71 @@ -webkit-border-radius: 5px; border-radius: 5px; } - -.bx-wrapper .bx-pager.bx-default-pager a:hover, -.bx-wrapper .bx-pager.bx-default-pager a.active { +#homepage-slider .bx-wrapper .bx-pager.bx-default-pager a:hover, +#homepage-slider .bx-wrapper .bx-pager.bx-default-pager a.active { background: #000; } - -/* DIRECTION CONTROLS (NEXT / PREV) */ -.bx-wrapper .bx-prev { - left: 10px; - background: url(images/controls.png) no-repeat 0 -32px; +#homepage-slider .bx-wrapper .bx-prev { + right: 60px; } - -.bx-wrapper .bx-next { +#homepage-slider .bx-wrapper .bx-prev:after { + content: "ď“"; +} +#homepage-slider .bx-wrapper .bx-next { right: 10px; - background: url(images/controls.png) no-repeat -43px -32px; } - -.bx-wrapper .bx-prev:hover { - background-position: 0 0; +#homepage-slider .bx-wrapper .bx-next:after { + content: "ď”"; } - -.bx-wrapper .bx-next:hover { - background-position: -43px 0; -} - -.bx-wrapper .bx-controls-direction a { +#homepage-slider .bx-wrapper .bx-controls-direction a { position: absolute; - top: 50%; - margin-top: -16px; + bottom: 10px; outline: 0; - width: 32px; - height: 32px; + width: 52px; + height: 52px; text-indent: -9999px; z-index: 9999; + border: 2px solid #fff; } - -.bx-wrapper .bx-controls-direction a.disabled { +#homepage-slider .bx-wrapper .bx-controls-direction a:before { + height: 48px; + width: 48px; + display: block; + background: #fff; + content: "."; + opacity: 0.14; + text-indent: -9999px; + position: absolute; + left: 0; + top: 0; + z-index: 1; +} +#homepage-slider .bx-wrapper .bx-controls-direction a:after { + display: block; + width: 48px; + height: 48px; + color: #fff; + text-indent: 0; + text-align: center; + font-size: 21px; + font-family: "FontAwesome"; + position: absolute; + top: 0; + left: 0; + z-index: 2; + padding: 16px 0 0 0; +} +#homepage-slider .bx-wrapper .bx-controls-direction a:hover:before { + background: #333; + opacity: 0.83; +} +#homepage-slider .bx-wrapper .bx-controls-direction a.disabled { display: none; } - -/* AUTO CONTROLS (START / STOP) */ -.bx-wrapper .bx-controls-auto { +#homepage-slider .bx-wrapper .bx-controls-auto { text-align: center; } - -.bx-wrapper .bx-controls-auto .bx-start { +#homepage-slider .bx-wrapper .bx-controls-auto .bx-start { display: block; text-indent: -9999px; width: 10px; @@ -147,13 +171,11 @@ background: url(images/controls.png) -86px -11px no-repeat; margin: 0 3px; } - -.bx-wrapper .bx-controls-auto .bx-start:hover, -.bx-wrapper .bx-controls-auto .bx-start.active { +#homepage-slider .bx-wrapper .bx-controls-auto .bx-start:hover, +#homepage-slider .bx-wrapper .bx-controls-auto .bx-start.active { background-position: -86px 0; } - -.bx-wrapper .bx-controls-auto .bx-stop { +#homepage-slider .bx-wrapper .bx-controls-auto .bx-stop { display: block; text-indent: -9999px; width: 9px; @@ -162,25 +184,19 @@ background: url(images/controls.png) -86px -44px no-repeat; margin: 0 3px; } - -.bx-wrapper .bx-controls-auto .bx-stop:hover, -.bx-wrapper .bx-controls-auto .bx-stop.active { +#homepage-slider .bx-wrapper .bx-controls-auto .bx-stop:hover, +#homepage-slider .bx-wrapper .bx-controls-auto .bx-stop.active { background-position: -86px -33px; } - -/* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ -.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { +#homepage-slider .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { text-align: left; width: 80%; } - -.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { +#homepage-slider .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { right: 0; width: 35px; } - -/* IMAGE CAPTIONS */ -.bx-wrapper .bx-caption { +#homepage-slider .bx-wrapper .bx-caption { position: absolute; bottom: 0; left: 0; @@ -188,8 +204,7 @@ background: rgba(80, 80, 80, 0.75); width: 100%; } - -.bx-wrapper .bx-caption span { +#homepage-slider .bx-wrapper .bx-caption span { color: #fff; font-family: Arial; display: block; diff --git a/themes/default-bootstrap/css/modules/productcomments/img/star.png b/themes/default-bootstrap/css/modules/productcomments/img/star.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf6cf2eeb3bbc41bc7c35be2a4b395dc2b2ab41 GIT binary patch literal 1267 zcmeAS@N?(olHy`uVBq!ia0vp@K&-~W1|;Ph1UrG0WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW`)d{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d20o>TUVrVb{15Cdnu|VHY&j92lm_lD){7Q3k;i`*Ef>IIg#cFVINM%8) zeo$(0erZuMFyhjbK~@!5ITxiSmgE%+1x<(8R#Rz|qan(AC(|#l^_N($T`jz|_dh z*uos9*Cju>G&eP`1g19yp%eUB2MjsTdNYM-v0;U}h6P{>+9C)%%%>$z`&U4>Eakt zaqCUU#lmI-9@Tw14@6&Zq%n0J7)+;yY+LQ9BljS6#q7?KjUSp0uoihaZFSrq?Rp4y{v{nny7$a?yQh3t3g*nT zlzDK&+xh*Irl6RG%^S7_?|eG(Yemsd+b;jli);4839NeayZqqyQ`3+0W^y#lO8&+W zT7Pj~L?^Rcc7LqNTi&GYx11H0?0s;>uR40^UiUQFW;XHCThYneZylcDS6$ASA#^3~ zOcdjh6p_t3E<5?9_P*bJYjV=W{>%4n+JBk;Ents9=ii#j2~*Zri3#R-I0e29^!ooR k(vJ1F$Q!SNajX&yy!SRdOME%|52zUOboFyt=akR{0LS3Sg8%>k literal 0 HcmV?d00001 diff --git a/themes/default-bootstrap/css/modules/productcomments/productcomments.css b/themes/default-bootstrap/css/modules/productcomments/productcomments.css index 63f104521..964fa548e 100644 --- a/themes/default-bootstrap/css/modules/productcomments/productcomments.css +++ b/themes/default-bootstrap/css/modules/productcomments/productcomments.css @@ -86,7 +86,7 @@ #product_comments_block_extra .comments_note { margin-bottom: 5px; } -#product_comments_block_extra #product_comments_block_extra .comments_note span, +#product_comments_block_extra .comments_note span, #product_comments_block_extra .star_content { float: left; color: #333; @@ -95,10 +95,10 @@ margin-top: 1px; } #product_comments_block_extra div.star { - background: url(img/star.gif) no-repeat 0 0; + background: url(img/star.png) no-repeat 0 0; } #product_comments_block_extra div.star_on { - background: url(img/star.gif) no-repeat 0 -13px; + background: url(img/star.png) no-repeat 0 -13px; } #product_comments_block_extra .comments_advices { clear: both; @@ -254,7 +254,7 @@ } #product_comments_block_tab div.star, #product_comments_block_tab div.star_on { - background: url(img/star.gif) no-repeat 0 0 transparent; + background: url(img/star.png) no-repeat 0 0; } #product_comments_block_tab div.star_on { background-position: 0 -13px; @@ -285,8 +285,13 @@ margin: 0; } #product_comments_block_tab div.comment_details li { - padding: 2px 0 2px 12px; - background: url(img/bg_li.png) no-repeat 1px 45% white; + padding: 2px 0 2px; +} +#product_comments_block_tab div.comment_details li:before { + font-family: FontAwesome; + content: "ďš"; + color: #333; + margin-right: 8px; } #product_comments_block_tab div.comment_details .title_block { text-transform: capitalize; diff --git a/themes/default-bootstrap/css/modules/productscategory/productscategory.css b/themes/default-bootstrap/css/modules/productscategory/productscategory.css index 20b48ca69..e69de29bb 100644 --- a/themes/default-bootstrap/css/modules/productscategory/productscategory.css +++ b/themes/default-bootstrap/css/modules/productscategory/productscategory.css @@ -1,50 +0,0 @@ -@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); -h2.productscategory_h2 { - margin: 40px 0 20px 0; - padding: 10px 0; - border-bottom: 1px solid #ccc; - font-size: 18px; - color: #333333; -} - -#productscategory { - overflow: auto; - margin-left: -10px; -} - -#productscategory_list { - overflow: hidden; -} -#productscategory_list ul { - list-style-type: none; - overflow: hidden; -} -#productscategory_list li a.lnk_img { - display: block; -} - -#productscategory_noscroll { - height: 220px; - width: 100%; - margin-bottom: 30px; -} - -#productscategory_scroll_left, #productscategory_scroll_right { - background: url("img/thumbs_left.gif") no-repeat center; - text-indent: -3000px; - display: block; - width: 9px; - height: 18px; - float: left; - margin-top: 30px; -} - -#productscategory_scroll_right { - background-image: url("img/thumbs_right.gif"); -} - -@media screen and (-webkit-min-device-pixel-ratio: 0) { - #productscategory_list li { - margin: 0 7px; - } -} diff --git a/themes/default-bootstrap/css/modules/stripejs/stripe-prestashop.css b/themes/default-bootstrap/css/modules/stripejs/stripe-prestashop.css index 0a6dbd629..fa8a0cb60 100644 --- a/themes/default-bootstrap/css/modules/stripejs/stripe-prestashop.css +++ b/themes/default-bootstrap/css/modules/stripejs/stripe-prestashop.css @@ -1,3 +1,4 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); #stripe-payment-form { line-height: 20px; padding-bottom: 7px; @@ -6,7 +7,7 @@ margin-bottom: 5px; } #stripe-payment-form .form-group input.stripe-card-number { - width: 263px; + max-width: 263px; } #stripe-payment-form .block-left { float: left; @@ -33,24 +34,38 @@ #stripe-payment-form .stripe-card-cvc-info:hover { text-decoration: none; } -#stripe-payment-form .stripe-card-expiry-year.form-control, #stripe-payment-form .stripe-card-expiry-month.form-control { +#stripe-payment-form #uniform-month, #stripe-payment-form .stripe-card-expiry-year.form-control, #stripe-payment-form #uniform-year, #stripe-payment-form .stripe-card-expiry-month.form-control { float: left; } #stripe-payment-form .stripe-card-expiry-year.form-control { width: 68px; } -#stripe-payment-form .stripe-card-expiry-month.form-control { +#stripe-payment-form #uniform-month, #stripe-payment-form .stripe-card-expiry-month.form-control { width: 115px; margin-right: 10px; } #stripe-payment-form .stripe-line { margin-bottom: 11px; } +@media (max-width: 479px) { + #stripe-payment-form .stripe-line .form-group { + clear: left; + width: 100%; + } +} #stripe-payment-form .ckeckbox { margin-bottom: 11px; } +#stripe-payment-form .ckeckbox .checker { + float: left; +} +#stripe-payment-form .ckeckbox .checker span { + top: 2px; +} #stripe-payment-form .ckeckbox label { font-weight: normal; + cursor: pointer; + color: #777777; } a.stripe-card-cvc-info div.cvc-info { diff --git a/themes/default-bootstrap/css/order-opc.css b/themes/default-bootstrap/css/order-opc.css index b49b62700..7bb48d8fd 100644 --- a/themes/default-bootstrap/css/order-opc.css +++ b/themes/default-bootstrap/css/order-opc.css @@ -29,7 +29,7 @@ margin-bottom: 2px; } #order-opc .form-group .form-control { - width: 271px; + max-width: 271px; } #order-opc .lost_password { display: inline-block; diff --git a/themes/default-bootstrap/css/product.css b/themes/default-bootstrap/css/product.css index c474ad0b7..f07269c58 100644 --- a/themes/default-bootstrap/css/product.css +++ b/themes/default-bootstrap/css/product.css @@ -11,19 +11,6 @@ margin: 2px 0 31px; } -.product-image { - border: 1px solid #d6d4d4; - background: white; - padding: 5px; - display: block; - margin-bottom: 14px; -} -.product-image img { - max-width: 100%; - width: 100%; - height: auto; -} - .product-heading-h5 { color: #333; font-weight: bold; @@ -32,7 +19,6 @@ .box-security .product-heading-h5 { margin: 3px 0 -8px; - /*max 1199px*/ } @media (max-width: 1199px) { .box-security .product-heading-h5 { @@ -40,43 +26,21 @@ } } -.name-product { +#productscategory_list .product-name, +.accessories-block .product-name { margin-bottom: 5px; } -.name-product a { +#productscategory_list .product-name a, +.accessories-block .product-name a { font-size: 15px; line-height: 18px; color: #3a3939; } -.name-product a:hover { +#productscategory_list .product-name a:hover, +.accessories-block .product-name a:hover { color: #999999; } -.product-box { - width: 178px; - margin: 0 10px; - float: left; -} - -h3.page-product-heading { - color: #555454; - text-transform: uppercase; - font-family: "Open Sans", sans-serif; - font-weight: 600; - font-size: 18px; - line-height: 20px; - padding: 14px 20px 17px; - margin: 0 0 20px; - position: relative; - border: 1px solid #d6d4d4; - border-bottom: none; - background: #fbfbfb; -} - -.page-product-box { - padding-bottom: 10px; -} - img { max-width: 100%; height: auto; @@ -88,7 +52,6 @@ img { padding: 5px; border: 1px solid #dbdbdb; background: #fff; - /*max 767px*/ } @media (max-width: 767px) { #pb-right-column #image-block { @@ -150,9 +113,6 @@ img { overflow: hidden; float: left; width: 392px; - /*min 992px max 1199px*/ - /* min 768px max 991px*/ - /*max 767px*/ } @media (min-width: 992px) and (max-width: 1199px) { #thumbs_list { @@ -186,7 +146,6 @@ img { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; - /*min 768px max 991px*/ } @media (min-width: 768px) and (max-width: 991px) { #thumbs_list li { @@ -223,7 +182,6 @@ img { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; - /*min 768px max 991px*/ } @media (min-width: 768px) and (max-width: 991px) { #thumbs_list li img { @@ -236,7 +194,6 @@ span.view_scroll_spacer { float: left; width: 39px; padding-left: 12px; - /*min 768px max 991px*/ } @media (min-width: 768px) and (max-width: 991px) { span.view_scroll_spacer { @@ -253,7 +210,6 @@ span.view_scroll_spacer { line-height: 0; font-size: 0; overflow: hidden; - /*min 768px max 991px*/ } @media (min-width: 768px) and (max-width: 991px) { #view_scroll_left, @@ -289,6 +245,9 @@ span.view_scroll_spacer { .resetimg { padding: 10px 0 0; } +.resetimg #resetImages i { + margin-right: 6px; +} /* link list */ #usefull_link_block { @@ -296,13 +255,20 @@ span.view_scroll_spacer { } #usefull_link_block li { float: left; - /*min 768px max 991px*/ + border-left: 1px solid #d6d4d4; + padding-left: 20px; + margin-left: 20px; } @media (min-width: 768px) and (max-width: 991px) { #usefull_link_block li { float: none !important; } } +#usefull_link_block li:first-child { + margin: 0; + border: none; + padding: 0; +} #usefull_link_block li a { color: #777676; font-weight: bold; @@ -324,12 +290,6 @@ span.view_scroll_spacer { #usefull_link_block li a:hover { color: #000; } -#usefull_link_block li.print { - border-left: 1px solid #d6d4d4; - padding-left: 20px; - margin-left: 20px; - /*min 768px max 991px*/ -} @media (min-width: 768px) and (max-width: 991px) { #usefull_link_block li.print { margin: 8px 0 0; @@ -340,9 +300,62 @@ span.view_scroll_spacer { #usefull_link_block li.print a:before { content: ""; } +#usefull_link_block li.sendtofriend { + margin: 0; + border: none; + padding: 0; +} #usefull_link_block li.sendtofriend a:before { content: "ď€"; } +#usefull_link_block li#left_share_fb { + clear: both; + float: none; + margin-bottom: 8px; +} +#usefull_link_block li#left_share_fb a { + padding-left: 18px; +} +#usefull_link_block li#left_share_fb a:before { + content: ""; +} +#usefull_link_block li#favoriteproducts_block_extra_remove, +#usefull_link_block li#favoriteproducts_block_extra_add, +#usefull_link_block li#favoriteproducts_block_extra_removed, +#usefull_link_block li#favoriteproducts_block_extra_added { + cursor: pointer; + font-weight: bold; + clear: both; + float: none; + margin-bottom: 8px; + padding-left: 24px; + margin-left: 0; + border: none; + position: relative; +} +#usefull_link_block li#favoriteproducts_block_extra_remove:before, +#usefull_link_block li#favoriteproducts_block_extra_add:before, +#usefull_link_block li#favoriteproducts_block_extra_removed:before, +#usefull_link_block li#favoriteproducts_block_extra_added:before { + font-family: FontAwesome; + color: #333; + font-size: 19px; + line-height: 24px; + position: absolute; + top: -2px; + left: 0; + font-weight: normal; + content: ""; +} +#usefull_link_block li#favoriteproducts_block_extra_remove:hover, +#usefull_link_block li#favoriteproducts_block_extra_add:hover, +#usefull_link_block li#favoriteproducts_block_extra_removed:hover, +#usefull_link_block li#favoriteproducts_block_extra_added:hover { + color: #000; +} +#usefull_link_block li#favoriteproducts_block_extra_removed:before { + content: ""; +} /* pb-left-column ****************************************************************************** */ #pb-left-column { @@ -422,11 +435,6 @@ span.view_scroll_spacer { text-align: right; } -.ie7 #pb-left-column #buy_block label { - margin-right: 5px; - float: left; -} - #short_description_block #short_description_content { padding: 0 0 15px; } @@ -447,17 +455,13 @@ span.view_scroll_spacer { } #attributes .attribute_list { - display: inline-block; + width: 100%; } - -.ie7 #attributes .attribute_list { - display: inline; - zoom: 1; - float: right; +#attributes .attribute_list .form-control { + max-width: 230px; } #attributes .attribute_list ul { - list-style: none; clear: both; } @@ -478,10 +482,6 @@ span.view_scroll_spacer { display: inline-block; } -.ie7 #attributes .attribute_list span { - margin-top: 1px; -} - #attributes .attribute_list #color_to_pick_list { list-style-type: none; } @@ -516,7 +516,7 @@ span.view_scroll_spacer { padding: 18px 19px 12px; } -.box-info-product #add_to_cart { +.box-info-product .exclusive { padding: 0; border-top: 1px solid #0079b6; border-right: 1px solid #006fa8; @@ -528,9 +528,9 @@ span.view_scroll_spacer { -o-border-radius: 5px; border-radius: 5px; position: relative; - display: inline-block; + display: block; } -.box-info-product #add_to_cart:before { +.box-info-product .exclusive:before { font-family: FontAwesome; position: absolute; top: 0; @@ -541,32 +541,22 @@ span.view_scroll_spacer { line-height: 47px; text-shadow: 0 1px #015883; content: "ďş"; - z-index: 10; + z-index: 2; width: 51px; text-align: center; - border-top: 1px solid #06b2e6; - border-right: 1px solid #06b2e6; - border-left: 1px solid #06b2e6; - border-bottom: 1px solid #06b2e6; - background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #009ad0), color-stop(100%, #007ab7)); - background-image: -webkit-linear-gradient(#009ad0, #007ab7); - background-image: -moz-linear-gradient(#009ad0, #007ab7); - background-image: -o-linear-gradient(#009ad0, #007ab7); - background-image: linear-gradient(#009ad0, #007ab7); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#009ad0', endColorstr='#007ab7',GradientType=0 ); + border: 1px solid #06b2e6; -webkit-border-radius: 5px 0 0 5px; -moz-border-radius: 5px 0 0 5px; -ms-border-radius: 5px 0 0 5px; -o-border-radius: 5px 0 0 5px; border-radius: 5px 0 0 5px; - /*max 991px*/ } @media (max-width: 991px) { - .box-info-product #add_to_cart:before { + .box-info-product .exclusive:before { display: none; } } -.box-info-product #add_to_cart:after { +.box-info-product .exclusive:after { background: url(../img/border-1.gif) repeat-y 0 0; position: absolute; top: 0; @@ -574,16 +564,15 @@ span.view_scroll_spacer { left: 51px; content: ""; width: 1px; - z-index: 10; - /* max 991px*/ + z-index: 2; } @media (max-width: 991px) { - .box-info-product #add_to_cart:after { + .box-info-product .exclusive:after { display: none; } } -.box-info-product .exclusive { +.box-info-product .exclusive span { background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #009ad0), color-stop(100%, #007ab7)); background-image: -webkit-linear-gradient(#009ad0, #007ab7); background-image: -moz-linear-gradient(#009ad0, #007ab7); @@ -604,25 +593,27 @@ span.view_scroll_spacer { border-bottom: 1px solid #06b2e6; text-shadow: 0 1px #015883; padding: 12px 36px 14px 82px; - text-align: right; color: #fff; display: block !important; - /* max 1199px*/ - /*max 991px*/ + -webkit-transition: all 0s ease; + -moz-transition: all 0s ease; + -o-transition: all 0s ease; + transition: all 0.3s ease; } @media (max-width: 1199px) { - .box-info-product .exclusive { + .box-info-product .exclusive span { padding: 12px 22px 14px 70px; font-size: 14px; } } @media (max-width: 991px) { - .box-info-product .exclusive { + .box-info-product .exclusive span { padding: 8px 12px 10px; text-align: left; } } -.box-info-product .exclusive:hover { + +.box-info-product .exclusive:hover span { background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #007ab7), color-stop(100%, #009ad0)); background-image: -webkit-linear-gradient(#007ab7, #009ad0); background-image: -moz-linear-gradient(#007ab7, #009ad0); @@ -664,6 +655,11 @@ table.table-produst-discounts { margin: 0 0 20px; background: #fff; } +@media (max-width: 767px) { + table.table-produst-discounts { + width: 100%; + } +} table.table-produst-discounts tr th { background: #fbfbfb; color: #333; @@ -715,17 +711,12 @@ table.table-produst-discounts tr th { width: 78px; height: 27px; padding: 0 6px; + float: left; border: 1px solid #d6d4d4; - /*min 768px max 991px*/ } -@media (min-width: 768px) and (max-width: 991px) { - #quantity_wanted_p input { - width: 100%; - margin-bottom: 4px; - } -} -#quantity_wanted_p button { - margin-top: -2px; +#quantity_wanted_p .btn { + float: left; + margin-left: 3px; } #quantity_wanted_p label { display: block; @@ -766,6 +757,8 @@ table.table-produst-discounts tr th { background: #ff7430; border: 1px solid #ea5e1a; padding: 4px 8px 3px; + position: relative; + top: 1px; } #availability_statut, @@ -830,7 +823,6 @@ table.table-produst-discounts tr th { line-height: 32px; font-family: "Open Sans", sans-serif; color: #333; - /*max 991px*/ } @media (max-width: 991px) { .our_price_display { @@ -884,8 +876,7 @@ table.table-produst-discounts tr th { } } .ie9 .content_prices #add_to_cart .exclusive, .ie9 .content_prices #add_to_cart .exclusive_disabled, -.ie8 .content_prices #add_to_cart .exclusive, .ie8 .content_prices #add_to_cart .exclusive_disabled, -.ie7 .content_prices #add_to_cart .exclusive, .ie7 .content_prices #add_to_cart .exclusive_disabled { +.ie8 .content_prices #add_to_cart .exclusive, .ie8 .content_prices #add_to_cart .exclusive_disabled { padding: 8px 7px 4px 15px; line-height: 12px; } @@ -986,13 +977,6 @@ table.table-produst-discounts tr th { text-align: right; } -/* PACK ##################################################################### */ -#blockpack { - margin-top: 20px; - padding-top: 20px; - border-top: 1px dotted #999; -} - /* PERSONNALISATION ##################################################################### */ .customization_block p.infoCustomizable { margin: 10px 0 20px; @@ -1040,3 +1024,194 @@ ul#uploadable_files, ul#text_fields { .accessories_block div ul li .s_title_block a, .accessories_block div ul li .s_title_block span { font-weight: bold; } + +/****************************************************************** + Quick View Styles +******************************************************************/ +#product.content_only div#primary_block, #product.content_only section#primary_block { + margin-bottom: 0; +} +@media (max-width: 991px) { + #product.content_only div#primary_block, #product.content_only section#primary_block { + margin-right: 0; + } +} +#product.content_only div#primary_block div#pb-right-column, #product.content_only section#primary_block div#pb-right-column { + padding: 20px 20px 5px 35px; + width: 47%; +} +@media (max-width: 479px) { + #product.content_only div#primary_block div#pb-right-column, #product.content_only section#primary_block div#pb-right-column { + width: 100%; + float: none; + } +} +#product.content_only div#primary_block div#pb-right-column span.view_scroll_spacer, #product.content_only section#primary_block div#pb-right-column span.view_scroll_spacer { + width: 38px; + padding-left: 10px; +} +#product.content_only div#primary_block div#pb-right-column #thumbs_list, #product.content_only section#primary_block div#pb-right-column #thumbs_list { + width: 392px; +} +#product.content_only div#primary_block div#pb-left-column, #product.content_only section#primary_block div#pb-left-column { + padding: 20px 20px 60px 0px; + width: 27.5%; + margin-bottom: 0; + min-height: 623px; + height: 100%; +} +@media (max-width: 991px) { + #product.content_only div#primary_block div#pb-left-column, #product.content_only section#primary_block div#pb-left-column { + min-height: 440px; + } +} +@media (max-width: 479px) { + #product.content_only div#primary_block div#pb-left-column, #product.content_only section#primary_block div#pb-left-column { + width: 100%; + float: none; + } +} +#product.content_only div#primary_block div#pb-left-column .product_comments_block_extra, #product.content_only section#primary_block div#pb-left-column .product_comments_block_extra { + padding-right: 0; +} +@media (max-width: 479px) { + #product.content_only div#primary_block div#pb-left-column .comments_advices li, #product.content_only section#primary_block div#pb-left-column .comments_advices li { + display: block; + } + #product.content_only div#primary_block div#pb-left-column .comments_advices a.reviews, #product.content_only section#primary_block div#pb-left-column .comments_advices a.reviews { + margin: 0; + padding: 0; + border: none; + } +} +#product.content_only div#primary_block div#pb-left-column #ShareDiv, #product.content_only section#primary_block div#pb-left-column #ShareDiv { + position: absolute; + bottom: 8px; +} +#product.content_only div#primary_block div#pb-right-column1, #product.content_only section#primary_block div#pb-right-column1 { + width: 25.5%; + padding-right: 15px; + padding-left: 0; +} +#product.content_only div#primary_block div#pb-right-column1 .box-info-product, #product.content_only section#primary_block div#pb-right-column1 .box-info-product { + border-top-width: 0px; + border-right: none; + border-bottom: none; + min-height: 623px; + height: 100%; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + -ms-border-radius: 0 4px 4px 0; + -o-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; + position: relative; + padding-bottom: 125px; +} +@media (max-width: 991px) { + #product.content_only div#primary_block div#pb-right-column1 .box-info-product, #product.content_only section#primary_block div#pb-right-column1 .box-info-product { + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; + border: 1px solid #d6d4d4; + } +} +#product.content_only div#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive, #product.content_only section#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive { + display: block; + width: 100%; +} +#product.content_only div#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive:before, #product.content_only div#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive:after, #product.content_only section#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive:before, #product.content_only section#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive:after { + display: block; +} +#product.content_only div#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive span, #product.content_only section#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive span { + font-size: 20px; + text-align: center; +} +@media (max-width: 1199px) { + #product.content_only div#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive span, #product.content_only section#primary_block div#pb-right-column1 .box-info-product #add_to_cart .exclusive span { + padding: 12px 22px 14px 70px; + font-size: 20px; + } +} +#product.content_only div#primary_block div#pb-right-column1 .box-info-product .box-cart-bottom, #product.content_only section#primary_block div#pb-right-column1 .box-info-product .box-cart-bottom { + position: absolute; + bottom: 0; + right: 0; + left: 0; +} +#product.content_only div#primary_block div#pb-right-column1 #attributes .attribute_list .form-control, #product.content_only section#primary_block div#pb-right-column1 #attributes .attribute_list .form-control { + width: 230px; +} +#product.content_only div#primary_block div#pb-right-column1 .product_attributes, #product.content_only div#primary_block div#pb-right-column1 .box-cart-bottom, #product.content_only section#primary_block div#pb-right-column1 .product_attributes, #product.content_only section#primary_block div#pb-right-column1 .box-cart-bottom { + -webkit-box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px; + -moz-box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px; + box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px; +} +#product.content_only div#primary_block div#pb-right-column1 .product_attributes, #product.content_only section#primary_block div#pb-right-column1 .product_attributes { + padding-top: 0; +} + +.addsharethisinner .stButton .stArrow { + display: none !important; +} + +@media (max-width: 1050px) { + #product.content_only div#primary_block div#pb-right-column, #product.content_only section#primary_block div#pb-right-column { + width: 100%; + padding-right: 15px; + } + #product.content_only div#primary_block div#pb-right-column #image-block, #product.content_only div#primary_block div#pb-right-column #views_block, #product.content_only section#primary_block div#pb-right-column #image-block, #product.content_only section#primary_block div#pb-right-column #views_block { + max-width: 470px; + width: 100%; + margin-left: auto; + margin-right: auto; + } + #product.content_only div#primary_block div#pb-right-column #thumbs_list li, #product.content_only section#primary_block div#pb-right-column #thumbs_list li { + width: 90px; + height: 90px; + } + #product.content_only div#primary_block div#pb-right-column #thumbs_list li img, #product.content_only section#primary_block div#pb-right-column #thumbs_list li img { + width: 82px; + height: 82px; + } + #product.content_only div#primary_block div#pb-left-column, #product.content_only section#primary_block div#pb-left-column { + width: 50%; + float: left; + padding-left: 35px; + } + #product.content_only div#primary_block div#pb-right-column1, #product.content_only section#primary_block div#pb-right-column1 { + width: 50%; + float: left; + } + #product.content_only div#primary_block div#pb-right-column1 .box-info-product, #product.content_only section#primary_block div#pb-right-column1 .box-info-product { + border-top-width: 1px; + min-height: 1px; + } +} +@media (max-width: 1050px) and (max-width: 479px) { + #product.content_only div#primary_block, #product.content_only section#primary_block { + margin-left: 0; + } +} +@media (max-width: 1050px) and (max-width: 479px) { + #product.content_only div#primary_block div#pb-left-column, #product.content_only section#primary_block div#pb-left-column { + width: 100%; + float: none; + padding-left: 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } +} +@media (max-width: 1050px) and (max-width: 479px) { + #product.content_only div#primary_block div#pb-right-column1, #product.content_only section#primary_block div#pb-right-column1 { + margin-top: 10px; + width: 100%; + float: none; + padding-left: 15px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } +} diff --git a/themes/default-bootstrap/css/product_list.css b/themes/default-bootstrap/css/product_list.css index 4ba56dd55..89b57610c 100644 --- a/themes/default-bootstrap/css/product_list.css +++ b/themes/default-bootstrap/css/product_list.css @@ -30,6 +30,32 @@ ul.product_list .color-list-container ul li a { height: 23px; margin: 1px; } +ul.product_list .product-image-container .quick-view { + font: 700 13px/16px Arial, Helvetica, sans-serif; + color: #777676; + position: absolute; + left: 50%; + top: 50%; + margin: -21px 0 0 -53px; + padding: 13px 0 0; + background: rgba(255, 255, 255, 0.82); + width: 107px; + height: 43px; + text-align: center; + -webkit-box-shadow: rgba(0, 0, 0, 0.16) 0 2px 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.16) 0 2px 8px; + box-shadow: rgba(0, 0, 0, 0.16) 0 2px 8px; +} +@media (min-width: 1200px) { + ul.product_list .product-image-container .quick-view { + display: none; + } +} +@media (max-width: 767px) { + ul.product_list .product-image-container .quick-view { + display: none; + } +} /******************************************************* Product list(Grid) Styles @@ -38,6 +64,11 @@ ul.product_list.grid > li { margin-bottom: 20px; text-align: center; } +@media (min-width: 480px) and (max-width: 767px) { + ul.product_list.grid > li { + width: 50%; + } +} ul.product_list.grid > li .product-container { background: #fff; padding: 0; @@ -49,6 +80,13 @@ ul.product_list.grid > li .product-container .product-image-container { margin-bottom: 13px; position: relative; } +@media (max-width: 767px) { + ul.product_list.grid > li .product-container .product-image-container { + max-width: 290px; + margin-left: auto; + margin-right: auto; + } +} ul.product_list.grid > li .product-container .product-image-container .content_price { position: absolute; left: 0; @@ -82,17 +120,25 @@ ul.product_list.grid > li .product-container .old-price { margin-right: 5px; } ul.product_list.grid > li .product-container .button-container { - display: none; margin-bottom: 14px; } +@media (min-width: 1200px) { + ul.product_list.grid > li .product-container .button-container { + display: none; + } +} ul.product_list.grid > li .product-container .button-container .ajax_add_to_cart_button, ul.product_list.grid > li .product-container .button-container span.button { margin-right: 6px; } ul.product_list.grid > li .product-container .functional-buttons { - display: none; background: url(../img/functional-bt-shadow.png) repeat-x; padding: 11px 0 5px; } +@media (min-width: 1200px) { + ul.product_list.grid > li .product-container .functional-buttons { + display: none; + } +} ul.product_list.grid > li .product-container .functional-buttons div { width: 50%; float: left; @@ -109,38 +155,80 @@ ul.product_list.grid > li .product-container .functional-buttons div a:hover, ul ul.product_list.grid > li .product-container .functional-buttons div.wishlist { border-right: 1px solid #d6d4d4; } +@media (min-width: 992px) and (max-width: 1199px) { + ul.product_list.grid > li .product-container .functional-buttons div.wishlist { + border-right: 0; + } + ul.product_list.grid > li .product-container .functional-buttons div.wishlist i { + display: none; + } +} +@media (min-width: 480px) and (max-width: 767px) { + ul.product_list.grid > li .product-container .functional-buttons div.wishlist { + border-right: 0; + } + ul.product_list.grid > li .product-container .functional-buttons div.wishlist i { + display: none; + } +} ul.product_list.grid > li .product-container .functional-buttons div.compare:before { content: "ď§"; display: inline-block; font-family: 'FontAwesome'; } +@media (min-width: 992px) and (max-width: 1199px) { + ul.product_list.grid > li .product-container .functional-buttons div.compare:before { + display: none; + } +} +@media (min-width: 480px) and (max-width: 767px) { + ul.product_list.grid > li .product-container .functional-buttons div.compare:before { + display: none; + } +} ul.product_list.grid > li .product-container .functional-buttons div.compare.compare.checked:before { content: "ď¨"; } -ul.product_list.grid > li .product-container:hover { - -webkit-box-shadow: rgba(0, 0, 0, 0.17) 0 0 13px; - -moz-box-shadow: rgba(0, 0, 0, 0.17) 0 0 13px; - box-shadow: rgba(0, 0, 0, 0.17) 0 0 13px; - margin-bottom: -48px; - position: relative; - z-index: 2; +@media (min-width: 1200px) { + ul.product_list.grid > li .product-container:hover { + -webkit-box-shadow: rgba(0, 0, 0, 0.17) 0 0 13px; + -moz-box-shadow: rgba(0, 0, 0, 0.17) 0 0 13px; + box-shadow: rgba(0, 0, 0, 0.17) 0 0 13px; + position: relative; + z-index: 2; + } + ul.product_list.grid > li .product-container:hover .content_price { + display: none; + } + ul.product_list.grid > li .product-container:hover .product-image-container .content_price { + display: block; + } + ul.product_list.grid > li .product-container:hover .product-image-container .quick-view { + display: block; + } + ul.product_list.grid > li .product-container:hover .button-container, ul.product_list.grid > li .product-container:hover .functional-buttons { + display: block; + } } -ul.product_list.grid > li .product-container:hover .content_price { - display: none; +@media (min-width: 992px) { + ul.product_list.grid > li.first-in-line { + clear: left; + } } -ul.product_list.grid > li .product-container:hover .product-image-container .content_price { - display: block; -} -ul.product_list.grid > li .product-container:hover .button-container, ul.product_list.grid > li .product-container:hover .functional-buttons { - display: block; -} -ul.product_list.grid > li.first-in-line { - clear: left; +@media (min-width: 480px) and (max-width: 991px) { + ul.product_list.grid > li.first-item-of-tablet-line { + clear: left; + } } /******************************************************* Product list(List) Styles ********************************************************/ +@media (max-width: 479px) { + ul.product_list.list > li .left-block { + width: 100%; + } +} ul.product_list.list > li .product-container { border-top: 1px solid #d6d4d4; padding: 30px 0 30px; @@ -150,6 +238,12 @@ ul.product_list.list > li .product-image-container { border: 1px solid #d6d4d4; padding: 9px; } +@media (max-width: 479px) { + ul.product_list.list > li .product-image-container { + max-width: 290px; + margin: 0 auto; + } +} ul.product_list.list > li .product-image-container .content_price { display: none !important; } @@ -166,30 +260,89 @@ ul.product_list.list > li h5 { ul.product_list.list > li .product-desc { margin-bottom: 15px; } -ul.product_list.list > li .right-block .right-block-content { - border-left: 1px solid #d6d4d4; - padding-left: 30px; - padding-bottom: 16px; +@media (max-width: 479px) { + ul.product_list.list > li .center-block { + width: 100%; + } +} +@media (min-width: 992px) { + ul.product_list.list > li .right-block .right-block-content { + margin: 0; + border-left: 1px solid #d6d4d4; + padding-left: 15px; + padding-bottom: 16px; + } +} +@media (max-width: 991px) { + ul.product_list.list > li .right-block .right-block-content { + padding-top: 20px; + } +} +@media (max-width: 479px) { + ul.product_list.list > li .right-block .right-block-content { + padding-top: 5px; + } } ul.product_list.list > li .right-block .right-block-content .content_price { - padding-bottom: 24px; + padding-bottom: 10px; +} +@media (max-width: 991px) { + ul.product_list.list > li .right-block .right-block-content .content_price { + padding-top: 13px; + padding-bottom: 0; + } +} +@media (max-width: 479px) { + ul.product_list.list > li .right-block .right-block-content .content_price { + padding-top: 0; + width: 100%; + } } ul.product_list.list > li .right-block .right-block-content .content_price span { display: inline-block; margin-top: -4px; + margin-bottom: 14px; } -ul.product_list.list > li .right-block .right-block-content .content_price span.price-percent-reduction { - margin-left: 8px; +ul.product_list.list > li .right-block .right-block-content .content_price span.old-price { + margin-right: 8px; } ul.product_list.list > li .right-block .right-block-content .button-container { overflow: hidden; padding-bottom: 20px; } +@media (max-width: 479px) { + ul.product_list.list > li .right-block .right-block-content .button-container { + width: 100%; + } +} ul.product_list.list > li .right-block .right-block-content .button-container .btn { - float: left; - clear: both; margin-bottom: 10px; } +@media (min-width: 992px) { + ul.product_list.list > li .right-block .right-block-content .button-container .btn { + float: left; + clear: both; + } +} +@media (max-width: 991px) { + ul.product_list.list > li .right-block .right-block-content .functional-buttons { + clear: both; + } + ul.product_list.list > li .right-block .right-block-content .functional-buttons > div { + float: left; + padding-top: 0 !important; + padding-right: 20px; + } +} +@media (max-width: 479px) { + ul.product_list.list > li .right-block .right-block-content .functional-buttons { + float: none; + display: inline-block; + } + ul.product_list.list > li .right-block .right-block-content .functional-buttons a i, ul.product_list.list > li .right-block .right-block-content .functional-buttons a:before, ul.product_list.list > li .right-block .right-block-content .functional-buttons label i, ul.product_list.list > li .right-block .right-block-content .functional-buttons label:before { + display: none !important; + } +} ul.product_list.list > li .right-block .right-block-content .functional-buttons a, ul.product_list.list > li .right-block .right-block-content .functional-buttons label { font-weight: bold; color: #777676; @@ -244,19 +397,28 @@ ul.product_list.list > li .right-block .right-block-content .functional-buttons ul.product_list.list > li .right-block .right-block-content .functional-buttons .compare label:hover:before { background: #333333; } +@media (min-width: 1200px) { + ul.product_list.list > li:hover .product-image-container .quick-view { + display: block; + } +} +@media (max-width: 479px) { + ul.product_list.list > li { + text-align: center; + } +} /******************************************************* Product list(Index page) Styles ********************************************************/ -#index ul.product_list > li { - border-bottom: 1px solid #d6d4d4; +#index ul.product_list.tab-pane > li { padding-bottom: 35px; margin-bottom: 50px; } -#index ul.product_list > li .availability { +#index ul.product_list.tab-pane > li .availability { display: none; } -#index ul.product_list > li.last-line { +#index ul.product_list.tab-pane > li.last-line { border: none; padding-bottom: 0; margin-bottom: 0; diff --git a/themes/default-bootstrap/css/stores.css b/themes/default-bootstrap/css/stores.css index 000d60ef5..37d8558d8 100644 --- a/themes/default-bootstrap/css/stores.css +++ b/themes/default-bootstrap/css/stores.css @@ -14,6 +14,13 @@ #stores .address-input { float: left; margin-right: 19px; + /* max 767px */ +} +@media (max-width: 767px) { + #stores .address-input { + width: 100%; + margin: 0 0 20px 0; + } } #stores .address-input label { margin-right: 5px; @@ -60,7 +67,7 @@ margin-left: 5px; } #stores #locationSelect { - width: 356px; + max-width: 356px; visibility: hidden; } #stores #stores-table { @@ -73,6 +80,19 @@ background: #fbfbfb; width: 46px; } +#stores #stores-table tbody td.name { + /* max 767px */ +} #stores #stores-table tbody td.name span { padding-left: 15px; } +@media (max-width: 767px) { + #stores #stores-table tbody td.name img { + display: none; + } +} + +.store-image img { + width: 100%; + min-width: 100px; +} diff --git a/themes/default-bootstrap/discount.tpl b/themes/default-bootstrap/discount.tpl index 2cd5d8401..8eab5219c 100644 --- a/themes/default-bootstrap/discount.tpl +++ b/themes/default-bootstrap/discount.tpl @@ -27,16 +27,16 @@

    {l s='My vouchers'}

    {if isset($cart_rules) && count($cart_rules) && $nb_cart_rules} - +
    - - - - + + + + diff --git a/themes/default-bootstrap/header.tpl b/themes/default-bootstrap/header.tpl index 540f2ca13..b613e749b 100644 --- a/themes/default-bootstrap/header.tpl +++ b/themes/default-bootstrap/header.tpl @@ -56,8 +56,8 @@ - - + + {if isset($css_files)} {foreach from=$css_files key=css_uri item=media} @@ -71,8 +71,9 @@ - + + {$HOOK_HEADER} @@ -87,7 +88,7 @@ diff --git a/themes/default-bootstrap/history.tpl b/themes/default-bootstrap/history.tpl index ebd7e02be..309f686af 100644 --- a/themes/default-bootstrap/history.tpl +++ b/themes/default-bootstrap/history.tpl @@ -33,16 +33,16 @@
    {if $orders && count($orders)} -
    {l s='Code'} {l s='Description'} {l s='Quantity'}{l s='Value'}*{l s='Minimum'}{l s='Cumulative'}{l s='Expiration date'}{l s='Value'}*{l s='Minimum'}{l s='Cumulative'}{l s='Expiration date'}
    +
    - - + + - - + + diff --git a/themes/default-bootstrap/identity.tpl b/themes/default-bootstrap/identity.tpl index a8d8b5e80..8bbff3bcf 100644 --- a/themes/default-bootstrap/identity.tpl +++ b/themes/default-bootstrap/identity.tpl @@ -59,21 +59,9 @@
    - +
    -
    - - -
    -
    - - -
    -
    - - -
    @@ -117,6 +105,18 @@
    +
    + + +
    +
    + + +
    +
    + + +
    {if $newsletter}
    '); + $row.after($next); + } + $next.find('> td:first').attr('colspan', colspan); + $detail = $next.find('.' + cls.detailInner).empty(); + opt.createDetail($detail, values, opt.createGroupedDetail, opt.detailSeparator, cls); + $row.data('detail_created', true); + ft.raise(evt.rowDetailUpdated, { 'row': $row, 'detail': $next }); + return !exists; + }; + + ft.raise = function (eventName, args) { + + if (ft.options.debug === true && $.isFunction(ft.options.log)) ft.options.log(eventName, 'event'); + + args = args || { }; + var def = { 'ft': ft }; + $.extend(true, def, args); + var e = $.Event(eventName, def); + if (!e.ft) { + $.extend(true, e, def); + } //pre jQuery 1.6 which did not allow data to be passed to event object constructor + $(ft.table).trigger(e); + return e; + }; + + //reset the state of FooTable + ft.reset = function() { + var $table = $(ft.table); + $table.removeData('footable_info') + .data('breakpoint', '') + .removeClass(cls.loading) + .removeClass(cls.loaded); + + $table.find(opt.toggleSelector).unbind(trg.toggleRow).unbind('click.footable'); + + $table.find('> tbody > tr').removeClass(cls.detailShow); + + $table.find('> tbody > tr.' + cls.detail).remove(); + + ft.raise(evt.reset); + }; + + ft.init(); + return ft; + } +})(jQuery, window); +$(function () { + $('.footab').footable(); +}); \ No newline at end of file diff --git a/themes/default-bootstrap/js/jquery/highdpi.js b/themes/default-bootstrap/js/jquery/highdpi.js index 805133709..1d3f4149b 100644 --- a/themes/default-bootstrap/js/jquery/highdpi.js +++ b/themes/default-bootstrap/js/jquery/highdpi.js @@ -1,8 +1,9 @@ function highdpi_init() { - if(jQuery('.replace-2x').css('font-size') == "1px") { - var els = jQuery("img.replace-2x").get(); + if($('.replace-2x').css('font-size') == "1px") { + + var els = $("img.replace-2x").get(); for(var i = 0; i < els.length; i++) { - var src = els[i].src + var src = els[i].src; src = src.replace(".png", "2x.png"); src = src.replace(".jpg", "2x.jpg"); src = src.replace(".gif", "2x.gif"); @@ -10,6 +11,31 @@ function highdpi_init() { } } } -jQuery(document).ready(function() { +$(document).ready(function() { + highdpi_init(); -}); \ No newline at end of file + + $(".replace-2x").each( function () + { + $.ajax({ + url:$(this).attr('src'), + type:'HEAD', + error:function(){ + + if($('.replace-2x').css('font-size') == "1px") { + + var els = $("img.replace-2x").get(); + for(var i = 0; i < els.length; i++) { + var src = els[i].src; + src = src.replace("2x.png", ".png"); + src = src.replace("2x.jpg", ".jpg"); + src = src.replace("2x.gif", ".gif"); + els[i].src = src; + } + } + }, + success:function(){} + }); + }); +}); + diff --git a/themes/default-bootstrap/js/jquery/jquery.bxslider.js b/themes/default-bootstrap/js/jquery/jquery.bxslider.js new file mode 100644 index 000000000..94fdab7d3 --- /dev/null +++ b/themes/default-bootstrap/js/jquery/jquery.bxslider.js @@ -0,0 +1,1315 @@ +/** + * BxSlider v4.1.1 - Fully loaded, responsive content slider + * http://bxslider.com + * + * Copyright 2013, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com + * Written while drinking Belgian ales and listening to jazz + * + * Released under the MIT license - http://opensource.org/licenses/MIT + */ + +;(function($){ + + var plugin = {}; + + var defaults = { + + // GENERAL + mode: 'horizontal', + slideSelector: '', + infiniteLoop: true, + hideControlOnEnd: false, + speed: 500, + easing: null, + slideMargin: 0, + startSlide: 0, + randomStart: false, + captions: false, + ticker: false, + tickerHover: false, + adaptiveHeight: false, + adaptiveHeightSpeed: 500, + video: false, + useCSS: true, + preloadImages: 'visible', + responsive: true, + + // TOUCH + touchEnabled: true, + swipeThreshold: 50, + oneToOneTouch: true, + preventDefaultSwipeX: true, + preventDefaultSwipeY: false, + + // PAGER + pager: true, + pagerType: 'full', + pagerShortSeparator: ' / ', + pagerSelector: null, + buildPager: null, + pagerCustom: null, + + // CONTROLS + controls: true, + nextText: 'Next', + prevText: 'Prev', + nextSelector: null, + prevSelector: null, + autoControls: false, + startText: 'Start', + stopText: 'Stop', + autoControlsCombine: false, + autoControlsSelector: null, + + // AUTO + auto: false, + pause: 4000, + autoStart: true, + autoDirection: 'next', + autoHover: false, + autoDelay: 0, + + // CAROUSEL + minSlides: 1, + maxSlides: 1, + moveSlides: 0, + slideWidth: 0, + + // CALLBACKS + onSliderLoad: function() {}, + onSlideBefore: function() {}, + onSlideAfter: function() {}, + onSlideNext: function() {}, + onSlidePrev: function() {} + } + + $.fn.bxSlider = function(options){ + + if(this.length == 0) return this; + + // support mutltiple elements + if(this.length > 1){ + this.each(function(){$(this).bxSlider(options)}); + return this; + } + + // create a namespace to be used throughout the plugin + var slider = {}; + // set a reference to our slider element + var el = this; + plugin.el = this; + + /** + * Makes slideshow responsive + */ + // first get the original window dimens (thanks alot IE) + var windowWidth = $(window).width(); + var windowHeight = $(window).height(); + + + + /** + * =================================================================================== + * = PRIVATE FUNCTIONS + * =================================================================================== + */ + + /** + * Initializes namespace settings to be used throughout plugin + */ + var init = function(){ + // merge user-supplied options with the defaults + slider.settings = $.extend({}, defaults, options); + // parse slideWidth setting + slider.settings.slideWidth = parseInt(slider.settings.slideWidth); + // store the original children + slider.children = el.children(slider.settings.slideSelector); + // check if actual number of slides is less than minSlides / maxSlides + if(slider.children.length < slider.settings.minSlides) slider.settings.minSlides = slider.children.length; + if(slider.children.length < slider.settings.maxSlides) slider.settings.maxSlides = slider.children.length; + // if random start, set the startSlide setting to random number + if(slider.settings.randomStart) slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); + // store active slide information + slider.active = { index: slider.settings.startSlide } + // store if the slider is in carousel mode (displaying / moving multiple slides) + slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1; + // if carousel, force preloadImages = 'all' + if(slider.carousel) slider.settings.preloadImages = 'all'; + // calculate the min / max width thresholds based on min / max number of slides + // used to setup and update carousel slides dimensions + slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); + slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + // store the current state of the slider (if currently animating, working is true) + slider.working = false; + // initialize the controls object + slider.controls = {}; + // initialize an auto interval + slider.interval = null; + // determine which property to use for transitions + slider.animProp = slider.settings.mode == 'vertical' ? 'top' : 'left'; + // determine if hardware acceleration can be used + slider.usingCSS = slider.settings.useCSS && slider.settings.mode != 'fade' && (function(){ + // create our test div element + var div = document.createElement('div'); + // css transition properties + var props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + // test for each property + for(var i in props){ + if(div.style[props[i]] !== undefined){ + slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase(); + slider.animProp = '-' + slider.cssPrefix + '-transform'; + return true; + } + } + return false; + }()); + // if vertical mode always make maxSlides and minSlides equal + if(slider.settings.mode == 'vertical') slider.settings.maxSlides = slider.settings.minSlides; + // save original style data + el.data("origStyle", el.attr("style")); + el.children(slider.settings.slideSelector).each(function() { + $(this).data("origStyle", $(this).attr("style")); + }); + // perform all DOM / CSS modifications + setup(); + } + + /** + * Performs all DOM and CSS modifications + */ + var setup = function(){ + // wrap el in a wrapper + el.wrap('
    '); + // store a namspace reference to .bx-viewport + slider.viewport = el.parent(); + // add a loading div to display while images are loading + slider.loader = $('
    '); + slider.viewport.prepend(slider.loader); + // set el to a massive width, to hold any needed slides + // also strip any margin and padding from el + el.css({ + width: slider.settings.mode == 'horizontal' ? (slider.children.length * 100 + 215) + '%' : 'auto', + position: 'relative' + }); + // if using CSS, add the easing property + if(slider.usingCSS && slider.settings.easing){ + el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + }else if(!slider.settings.easing){ + slider.settings.easing = 'swing'; + } + var slidesShowing = getNumberSlidesShowing(); + // make modifications to the viewport (.bx-viewport) + slider.viewport.css({ + width: '100%', + overflow: 'hidden', + position: 'relative' + }); + slider.viewport.parent().css({ + maxWidth: getViewportMaxWidth() + }); + // make modification to the wrapper (.bx-wrapper) + if(!slider.settings.pager) { + slider.viewport.parent().css({ + margin: '0 auto 0px' + }); + } + // apply css to all slider children + slider.children.css({ + 'float': slider.settings.mode == 'horizontal' ? 'left' : 'none', + listStyle: 'none', + position: 'relative' + }); + // apply the calculated width after the float is applied to prevent scrollbar interference + slider.children.css('width', getSlideWidth()); + // if slideMargin is supplied, add the css + if(slider.settings.mode == 'horizontal' && slider.settings.slideMargin > 0) slider.children.css('marginRight', slider.settings.slideMargin); + if(slider.settings.mode == 'vertical' && slider.settings.slideMargin > 0) slider.children.css('marginBottom', slider.settings.slideMargin); + // if "fade" mode, add positioning and z-index CSS + if(slider.settings.mode == 'fade'){ + slider.children.css({ + position: 'absolute', + zIndex: 0, + display: 'none' + }); + // prepare the z-index on the showing element + slider.children.eq(slider.settings.startSlide).css({zIndex: 50, display: 'block'}); + } + // create an element to contain all slider controls (pager, start / stop, etc) + slider.controls.el = $('
    '); + // if captions are requested, add them + if(slider.settings.captions) appendCaptions(); + // check if startSlide is last slide + slider.active.last = slider.settings.startSlide == getPagerQty() - 1; + // if video is true, set up the fitVids plugin + if(slider.settings.video) el.fitVids(); + // set the default preload selector (visible) + var preloadSelector = slider.children.eq(slider.settings.startSlide); + if (slider.settings.preloadImages == "all") preloadSelector = slider.children; + // only check for control addition if not in "ticker" mode + if(!slider.settings.ticker){ + // if pager is requested, add it + if(slider.settings.pager) appendPager(); + // if controls are requested, add them + if(slider.settings.controls) appendControls(); + // if auto is true, and auto controls are requested, add them + if(slider.settings.auto && slider.settings.autoControls) appendControlsAuto(); + // if any control option is requested, add the controls wrapper + if(slider.settings.controls || slider.settings.autoControls || slider.settings.pager) slider.viewport.after(slider.controls.el); + // if ticker mode, do not allow a pager + }else{ + slider.settings.pager = false; + } + // preload all images, then perform final DOM / CSS modifications that depend on images being loaded + loadElements(preloadSelector, start); + } + + var loadElements = function(selector, callback){ + var total = selector.find('img, iframe').length; + if (total == 0){ + callback(); + return; + } + var count = 0; + selector.find('img, iframe').each(function(){ + $(this).one('load', function() { + if(++count == total) callback(); + }).each(function() { + if(this.complete) $(this).load(); + }); + }); + } + + /** + * Start the slider + */ + var start = function(){ + // if infinite loop, prepare additional slides + if(slider.settings.infiniteLoop && slider.settings.mode != 'fade' && !slider.settings.ticker){ + var slice = slider.settings.mode == 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides; + var sliceAppend = slider.children.slice(0, slice).clone().addClass('bx-clone'); + var slicePrepend = slider.children.slice(-slice).clone().addClass('bx-clone'); + el.append(sliceAppend).prepend(slicePrepend); + } + // remove the loading DOM element + slider.loader.remove(); + // set the left / top position of "el" + setSlidePosition(); + // if "vertical" mode, always use adaptiveHeight to prevent odd behavior + if (slider.settings.mode == 'vertical') slider.settings.adaptiveHeight = true; + // set the viewport height + slider.viewport.height(getViewportHeight()); + // make sure everything is positioned just right (same as a window resize) + el.redrawSlider(); + // onSliderLoad callback + slider.settings.onSliderLoad(slider.active.index); + // slider has been fully initialized + slider.initialized = true; + // bind the resize call to the window + if (slider.settings.responsive) $(window).bind('resize', resizeWindow); + // if auto is true, start the show + if (slider.settings.auto && slider.settings.autoStart) initAuto(); + // if ticker is true, start the ticker + if (slider.settings.ticker) initTicker(); + // if pager is requested, make the appropriate pager link active + if (slider.settings.pager) updatePagerActive(slider.settings.startSlide); + // check for any updates to the controls (like hideControlOnEnd updates) + if (slider.settings.controls) updateDirectionControls(); + // if touchEnabled is true, setup the touch events + if (slider.settings.touchEnabled && !slider.settings.ticker) initTouch(); + } + + /** + * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value + */ + var getViewportHeight = function(){ + var height = 0; + // first determine which children (slides) should be used in our height calculation + var children = $(); + // if mode is not "vertical" and adaptiveHeight is false, include all children + if(slider.settings.mode != 'vertical' && !slider.settings.adaptiveHeight){ + children = slider.children; + }else{ + // if not carousel, return the single active child + if(!slider.carousel){ + children = slider.children.eq(slider.active.index); + // if carousel, return a slice of children + }else{ + // get the individual slide index + var currentIndex = slider.settings.moveSlides == 1 ? slider.active.index : slider.active.index * getMoveBy(); + // add the current slide to the children + children = slider.children.eq(currentIndex); + // cycle through the remaining "showing" slides + for (i = 1; i <= slider.settings.maxSlides - 1; i++){ + // if looped back to the start + if(currentIndex + i >= slider.children.length){ + children = children.add(slider.children.eq(i - 1)); + }else{ + children = children.add(slider.children.eq(currentIndex + i)); + } + } + } + } + // if "vertical" mode, calculate the sum of the heights of the children + if(slider.settings.mode == 'vertical'){ + children.each(function(index) { + height += $(this).outerHeight(); + }); + // add user-supplied margins + if(slider.settings.slideMargin > 0){ + height += slider.settings.slideMargin * (slider.settings.minSlides - 1); + } + // if not "vertical" mode, calculate the max height of the children + }else{ + height = Math.max.apply(Math, children.map(function(){ + return $(this).outerHeight(false); + }).get()); + } + return height; + } + + /** + * Returns the calculated width to be used for the outer wrapper / viewport + */ + var getViewportMaxWidth = function(){ + var width = '100%'; + if(slider.settings.slideWidth > 0){ + if(slider.settings.mode == 'horizontal'){ + width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + }else{ + width = slider.settings.slideWidth; + } + } + return width; + } + + /** + * Returns the calculated width to be applied to each slide + */ + var getSlideWidth = function(){ + // start with any user-supplied slide width + var newElWidth = slider.settings.slideWidth; + // get the current viewport width + var wrapWidth = slider.viewport.width(); + // if slide width was not supplied, or is larger than the viewport use the viewport width + if(slider.settings.slideWidth == 0 || + (slider.settings.slideWidth > wrapWidth && !slider.carousel) || + slider.settings.mode == 'vertical'){ + newElWidth = wrapWidth; + // if carousel, use the thresholds to determine the width + }else if(slider.settings.maxSlides > 1 && slider.settings.mode == 'horizontal'){ + if(wrapWidth > slider.maxThreshold){ + // newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.maxSlides - 1))) / slider.settings.maxSlides; + }else if(wrapWidth < slider.minThreshold){ + newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; + } + } + return newElWidth; + } + + /** + * Returns the number of slides currently visible in the viewport (includes partially visible slides) + */ + var getNumberSlidesShowing = function(){ + var slidesShowing = 1; + if(slider.settings.mode == 'horizontal' && slider.settings.slideWidth > 0){ + // if viewport is smaller than minThreshold, return minSlides + if(slider.viewport.width() < slider.minThreshold){ + slidesShowing = slider.settings.minSlides; + // if viewport is larger than minThreshold, return maxSlides + }else if(slider.viewport.width() > slider.maxThreshold){ + slidesShowing = slider.settings.maxSlides; + // if viewport is between min / max thresholds, divide viewport width by first child width + }else{ + var childWidth = slider.children.first().width(); + slidesShowing = Math.floor(slider.viewport.width() / childWidth); + } + // if "vertical" mode, slides showing will always be minSlides + }else if(slider.settings.mode == 'vertical'){ + slidesShowing = slider.settings.minSlides; + } + return slidesShowing; + } + + /** + * Returns the number of pages (one full viewport of slides is one "page") + */ + var getPagerQty = function(){ + var pagerQty = 0; + // if moveSlides is specified by the user + if(slider.settings.moveSlides > 0){ + if(slider.settings.infiniteLoop){ + pagerQty = slider.children.length / getMoveBy(); + }else{ + // use a while loop to determine pages + var breakPoint = 0; + var counter = 0 + // when breakpoint goes above children length, counter is the number of pages + while (breakPoint < slider.children.length){ + ++pagerQty; + breakPoint = counter + getNumberSlidesShowing(); + counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); + } + } + // if moveSlides is 0 (auto) divide children length by sides showing, then round up + }else{ + pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); + } + return pagerQty; + } + + /** + * Returns the number of indivual slides by which to shift the slider + */ + var getMoveBy = function(){ + // if moveSlides was set by the user and moveSlides is less than number of slides showing + if(slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()){ + return slider.settings.moveSlides; + } + // if moveSlides is 0 (auto) + return getNumberSlidesShowing(); + } + + /** + * Sets the slider's (el) left or top position + */ + var setSlidePosition = function(){ + // if last slide, not infinite loop, and number of children is larger than specified maxSlides + if(slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop){ + if (slider.settings.mode == 'horizontal'){ + // get the last child's position + var lastChild = slider.children.last(); + var position = lastChild.position(); + // set the left position + setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.width())), 'reset', 0); + }else if(slider.settings.mode == 'vertical'){ + // get the last showing index's position + var lastShowingIndex = slider.children.length - slider.settings.minSlides; + var position = slider.children.eq(lastShowingIndex).position(); + // set the top position + setPositionProperty(-position.top, 'reset', 0); + } + // if not last slide + }else{ + // get the position of the first showing slide + var position = slider.children.eq(slider.active.index * getMoveBy()).position(); + // check for last slide + if (slider.active.index == getPagerQty() - 1) slider.active.last = true; + // set the repective position + if (position != undefined){ + if (slider.settings.mode == 'horizontal') setPositionProperty(-position.left, 'reset', 0); + else if (slider.settings.mode == 'vertical') setPositionProperty(-position.top, 'reset', 0); + } + } + } + + /** + * Sets the el's animating property position (which in turn will sometimes animate el). + * If using CSS, sets the transform property. If not using CSS, sets the top / left property. + * + * @param value (int) + * - the animating property's value + * + * @param type (string) 'slider', 'reset', 'ticker' + * - the type of instance for which the function is being + * + * @param duration (int) + * - the amount of time (in ms) the transition should occupy + * + * @param params (array) optional + * - an optional parameter containing any variables that need to be passed in + */ + var setPositionProperty = function(value, type, duration, params){ + // use CSS transform + if(slider.usingCSS){ + // determine the translate3d value + var propValue = slider.settings.mode == 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)'; + // add the CSS transition-duration + el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's'); + if(type == 'slide'){ + // set the property value + el.css(slider.animProp, propValue); + // bind a callback method - executes when CSS transition completes + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){ + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + updateAfterSlideTransition(); + }); + }else if(type == 'reset'){ + el.css(slider.animProp, propValue); + }else if(type == 'ticker'){ + // make the transition use 'linear' + el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); + el.css(slider.animProp, propValue); + // bind a callback method - executes when CSS transition completes + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){ + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + // reset the position + setPositionProperty(params['resetValue'], 'reset', 0); + // start the loop again + tickerLoop(); + }); + } + // use JS animate + }else{ + var animateObj = {}; + animateObj[slider.animProp] = value; + if(type == 'slide'){ + el.animate(animateObj, duration, slider.settings.easing, function(){ + updateAfterSlideTransition(); + }); + }else if(type == 'reset'){ + el.css(slider.animProp, value) + }else if(type == 'ticker'){ + el.animate(animateObj, speed, 'linear', function(){ + setPositionProperty(params['resetValue'], 'reset', 0); + // run the recursive loop after animation + tickerLoop(); + }); + } + } + } + + /** + * Populates the pager with proper amount of pages + */ + var populatePager = function(){ + var pagerHtml = ''; + var pagerQty = getPagerQty(); + // loop through each pager item + for(var i=0; i < pagerQty; i++){ + var linkContent = ''; + // if a buildPager function is supplied, use it to get pager link value, else use index + 1 + if(slider.settings.buildPager && $.isFunction(slider.settings.buildPager)){ + linkContent = slider.settings.buildPager(i); + slider.pagerEl.addClass('bx-custom-pager'); + }else{ + linkContent = i + 1; + slider.pagerEl.addClass('bx-default-pager'); + } + // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1; + // add the markup to the string + pagerHtml += ''; + }; + // populate the pager element with pager links + slider.pagerEl.html(pagerHtml); + } + + /** + * Appends the pager to the controls element + */ + var appendPager = function(){ + if(!slider.settings.pagerCustom){ + // create the pager DOM element + slider.pagerEl = $('
    '); + // if a pager selector was supplied, populate it with the pager + if(slider.settings.pagerSelector){ + $(slider.settings.pagerSelector).html(slider.pagerEl); + // if no pager selector was supplied, add it after the wrapper + }else{ + slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); + } + // populate the pager + populatePager(); + }else{ + slider.pagerEl = $(slider.settings.pagerCustom); + } + // assign the pager click binding + slider.pagerEl.delegate('a', 'click', clickPagerBind); + } + + /** + * Appends prev / next controls to the controls element + */ + var appendControls = function(){ + slider.controls.next = $('' + slider.settings.nextText + ''); + slider.controls.prev = $('' + slider.settings.prevText + ''); + // bind click actions to the controls + slider.controls.next.bind('click', clickNextBind); + slider.controls.prev.bind('click', clickPrevBind); + // if nextSlector was supplied, populate it + if(slider.settings.nextSelector){ + $(slider.settings.nextSelector).append(slider.controls.next); + } + // if prevSlector was supplied, populate it + if(slider.settings.prevSelector){ + $(slider.settings.prevSelector).append(slider.controls.prev); + } + // if no custom selectors were supplied + if(!slider.settings.nextSelector && !slider.settings.prevSelector){ + // add the controls to the DOM + slider.controls.directionEl = $('
    '); + // add the control elements to the directionEl + slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next); + // slider.viewport.append(slider.controls.directionEl); + slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); + } + } + + /** + * Appends start / stop auto controls to the controls element + */ + var appendControlsAuto = function(){ + slider.controls.start = $(''); + slider.controls.stop = $(''); + // add the controls to the DOM + slider.controls.autoEl = $('
    '); + // bind click actions to the controls + slider.controls.autoEl.delegate('.bx-start', 'click', clickStartBind); + slider.controls.autoEl.delegate('.bx-stop', 'click', clickStopBind); + // if autoControlsCombine, insert only the "start" control + if(slider.settings.autoControlsCombine){ + slider.controls.autoEl.append(slider.controls.start); + // if autoControlsCombine is false, insert both controls + }else{ + slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); + } + // if auto controls selector was supplied, populate it with the controls + if(slider.settings.autoControlsSelector){ + $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); + // if auto controls selector was not supplied, add it after the wrapper + }else{ + slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); + } + // update the auto controls + updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); + } + + /** + * Appends image captions to the DOM + */ + var appendCaptions = function(){ + // cycle through each child + slider.children.each(function(index){ + // get the image title attribute + var title = $(this).find('img:first').attr('title'); + // append the caption + if (title != undefined && ('' + title).length) { + $(this).append('
    ' + title + '
    '); + } + }); + } + + /** + * Click next binding + * + * @param e (event) + * - DOM event object + */ + var clickNextBind = function(e){ + // if auto show is running, stop it + if (slider.settings.auto) el.stopAuto(); + el.goToNextSlide(); + e.preventDefault(); + } + + /** + * Click prev binding + * + * @param e (event) + * - DOM event object + */ + var clickPrevBind = function(e){ + // if auto show is running, stop it + if (slider.settings.auto) el.stopAuto(); + el.goToPrevSlide(); + e.preventDefault(); + } + + /** + * Click start binding + * + * @param e (event) + * - DOM event object + */ + var clickStartBind = function(e){ + el.startAuto(); + e.preventDefault(); + } + + /** + * Click stop binding + * + * @param e (event) + * - DOM event object + */ + var clickStopBind = function(e){ + el.stopAuto(); + e.preventDefault(); + } + + /** + * Click pager binding + * + * @param e (event) + * - DOM event object + */ + var clickPagerBind = function(e){ + // if auto show is running, stop it + if (slider.settings.auto) el.stopAuto(); + var pagerLink = $(e.currentTarget); + var pagerIndex = parseInt(pagerLink.attr('data-slide-index')); + // if clicked pager link is not active, continue with the goToSlide call + if(pagerIndex != slider.active.index) el.goToSlide(pagerIndex); + e.preventDefault(); + } + + /** + * Updates the pager links with an active class + * + * @param slideIndex (int) + * - index of slide to make active + */ + var updatePagerActive = function(slideIndex){ + // if "short" pager type + var len = slider.children.length; // nb of children + if(slider.settings.pagerType == 'short'){ + if(slider.settings.maxSlides > 1) { + len = Math.ceil(slider.children.length/slider.settings.maxSlides); + } + slider.pagerEl.html( (slideIndex + 1) + slider.settings.pagerShortSeparator + len); + return; + } + // remove all pager active classes + slider.pagerEl.find('a').removeClass('active'); + // apply the active class for all pagers + slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + } + + /** + * Performs needed actions after a slide transition + */ + var updateAfterSlideTransition = function(){ + // if infinte loop is true + if(slider.settings.infiniteLoop){ + var position = ''; + // first slide + if(slider.active.index == 0){ + // set the new position + position = slider.children.eq(0).position(); + // carousel, last slide + }else if(slider.active.index == getPagerQty() - 1 && slider.carousel){ + position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); + // last slide + }else if(slider.active.index == slider.children.length - 1){ + position = slider.children.eq(slider.children.length - 1).position(); + } + if (slider.settings.mode == 'horizontal') { setPositionProperty(-position.left, 'reset', 0);; } + else if (slider.settings.mode == 'vertical') { setPositionProperty(-position.top, 'reset', 0);; } + } + // declare that the transition is complete + slider.working = false; + // onSlideAfter callback + slider.settings.onSlideAfter(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + } + + /** + * Updates the auto controls state (either active, or combined switch) + * + * @param state (string) "start", "stop" + * - the new state of the auto show + */ + var updateAutoControls = function(state){ + // if autoControlsCombine is true, replace the current control with the new state + if(slider.settings.autoControlsCombine){ + slider.controls.autoEl.html(slider.controls[state]); + // if autoControlsCombine is false, apply the "active" class to the appropriate control + }else{ + slider.controls.autoEl.find('a').removeClass('active'); + slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); + } + } + + /** + * Updates the direction controls (checks if either should be hidden) + */ + var updateDirectionControls = function(){ + if(getPagerQty() == 1){ + slider.controls.prev.addClass('disabled'); + slider.controls.next.addClass('disabled'); + }else if(!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd){ + // if first slide + if (slider.active.index == 0){ + slider.controls.prev.addClass('disabled'); + slider.controls.next.removeClass('disabled'); + // if last slide + }else if(slider.active.index == getPagerQty() - 1){ + slider.controls.next.addClass('disabled'); + slider.controls.prev.removeClass('disabled'); + // if any slide in the middle + }else{ + slider.controls.prev.removeClass('disabled'); + slider.controls.next.removeClass('disabled'); + } + } + } + + /** + * Initialzes the auto process + */ + var initAuto = function(){ + // if autoDelay was supplied, launch the auto show using a setTimeout() call + if(slider.settings.autoDelay > 0){ + var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); + // if autoDelay was not supplied, start the auto show normally + }else{ + el.startAuto(); + } + // if autoHover is requested + if(slider.settings.autoHover){ + // on el hover + el.hover(function(){ + // if the auto show is currently playing (has an active interval) + if(slider.interval){ + // stop the auto show and pass true agument which will prevent control update + el.stopAuto(true); + // create a new autoPaused value which will be used by the relative "mouseout" event + slider.autoPaused = true; + } + }, function(){ + // if the autoPaused value was created be the prior "mouseover" event + if(slider.autoPaused){ + // start the auto show and pass true agument which will prevent control update + el.startAuto(true); + // reset the autoPaused value + slider.autoPaused = null; + } + }); + } + } + + /** + * Initialzes the ticker process + */ + var initTicker = function(){ + var startPosition = 0; + // if autoDirection is "next", append a clone of the entire slider + if(slider.settings.autoDirection == 'next'){ + el.append(slider.children.clone().addClass('bx-clone')); + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + }else{ + el.prepend(slider.children.clone().addClass('bx-clone')); + var position = slider.children.first().position(); + startPosition = slider.settings.mode == 'horizontal' ? -position.left : -position.top; + } + setPositionProperty(startPosition, 'reset', 0); + // do not allow controls in ticker mode + slider.settings.pager = false; + slider.settings.controls = false; + slider.settings.autoControls = false; + // if autoHover is requested + if(slider.settings.tickerHover && !slider.usingCSS){ + // on el hover + slider.viewport.hover(function(){ + el.stop(); + }, function(){ + // calculate the total width of children (used to calculate the speed ratio) + var totalDimens = 0; + slider.children.each(function(index){ + totalDimens += slider.settings.mode == 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + var ratio = slider.settings.speed / totalDimens; + // determine which property to use + var property = slider.settings.mode == 'horizontal' ? 'left' : 'top'; + // calculate the new speed + var newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property))))); + tickerLoop(newSpeed); + }); + } + // start the ticker loop + tickerLoop(); + } + + /** + * Runs a continuous loop, news ticker-style + */ + var tickerLoop = function(resumeSpeed){ + speed = resumeSpeed ? resumeSpeed : slider.settings.speed; + var position = {left: 0, top: 0}; + var reset = {left: 0, top: 0}; + // if "next" animate left position to last child, then reset left to 0 + if(slider.settings.autoDirection == 'next'){ + position = el.find('.bx-clone').first().position(); + // if "prev" animate left position to 0, then reset left to first non-clone child + }else{ + reset = slider.children.first().position(); + } + var animateProperty = slider.settings.mode == 'horizontal' ? -position.left : -position.top; + var resetValue = slider.settings.mode == 'horizontal' ? -reset.left : -reset.top; + var params = {resetValue: resetValue}; + setPositionProperty(animateProperty, 'ticker', speed, params); + } + + /** + * Initializes touch events + */ + var initTouch = function(){ + // initialize object to contain all touch values + slider.touch = { + start: {x: 0, y: 0}, + end: {x: 0, y: 0} + } + slider.viewport.bind('touchstart', onTouchStart); + } + + /** + * Event handler for "touchstart" + * + * @param e (event) + * - DOM event object + */ + var onTouchStart = function(e){ + if(slider.working){ + e.preventDefault(); + }else{ + // record the original position when touch starts + slider.touch.originalPos = el.position(); + var orig = e.originalEvent; + // record the starting touch x, y coordinates + slider.touch.start.x = orig.changedTouches[0].pageX; + slider.touch.start.y = orig.changedTouches[0].pageY; + // bind a "touchmove" event to the viewport + slider.viewport.bind('touchmove', onTouchMove); + // bind a "touchend" event to the viewport + slider.viewport.bind('touchend', onTouchEnd); + } + } + + /** + * Event handler for "touchmove" + * + * @param e (event) + * - DOM event object + */ + var onTouchMove = function(e){ + var orig = e.originalEvent; + // if scrolling on y axis, do not prevent default + var xMovement = Math.abs(orig.changedTouches[0].pageX - slider.touch.start.x); + var yMovement = Math.abs(orig.changedTouches[0].pageY - slider.touch.start.y); + // x axis swipe + if((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX){ + e.preventDefault(); + // y axis swipe + }else if((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY){ + e.preventDefault(); + } + if(slider.settings.mode != 'fade' && slider.settings.oneToOneTouch){ + var value = 0; + // if horizontal, drag along x axis + if(slider.settings.mode == 'horizontal'){ + var change = orig.changedTouches[0].pageX - slider.touch.start.x; + value = slider.touch.originalPos.left + change; + // if vertical, drag along y axis + }else{ + var change = orig.changedTouches[0].pageY - slider.touch.start.y; + value = slider.touch.originalPos.top + change; + } + setPositionProperty(value, 'reset', 0); + } + } + + /** + * Event handler for "touchend" + * + * @param e (event) + * - DOM event object + */ + var onTouchEnd = function(e){ + slider.viewport.unbind('touchmove', onTouchMove); + var orig = e.originalEvent; + var value = 0; + // record end x, y positions + slider.touch.end.x = orig.changedTouches[0].pageX; + slider.touch.end.y = orig.changedTouches[0].pageY; + // if fade mode, check if absolute x distance clears the threshold + if(slider.settings.mode == 'fade'){ + var distance = Math.abs(slider.touch.start.x - slider.touch.end.x); + if(distance >= slider.settings.swipeThreshold){ + slider.touch.start.x > slider.touch.end.x ? el.goToNextSlide() : el.goToPrevSlide(); + el.stopAuto(); + } + // not fade mode + }else{ + var distance = 0; + // calculate distance and el's animate property + if(slider.settings.mode == 'horizontal'){ + distance = slider.touch.end.x - slider.touch.start.x; + value = slider.touch.originalPos.left; + }else{ + distance = slider.touch.end.y - slider.touch.start.y; + value = slider.touch.originalPos.top; + } + // if not infinite loop and first / last slide, do not attempt a slide transition + if(!slider.settings.infiniteLoop && ((slider.active.index == 0 && distance > 0) || (slider.active.last && distance < 0))){ + setPositionProperty(value, 'reset', 200); + }else{ + // check if distance clears threshold + if(Math.abs(distance) >= slider.settings.swipeThreshold){ + distance < 0 ? el.goToNextSlide() : el.goToPrevSlide(); + el.stopAuto(); + }else{ + // el.animate(property, 200); + setPositionProperty(value, 'reset', 200); + } + } + } + slider.viewport.unbind('touchend', onTouchEnd); + } + + /** + * Window resize event callback + */ + var resizeWindow = function(e){ + // get the new window dimens (again, thank you IE) + var windowWidthNew = $(window).width(); + var windowHeightNew = $(window).height(); + // make sure that it is a true window resize + // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements + // are resized. Can you just die already?* + if(windowWidth != windowWidthNew || windowHeight != windowHeightNew){ + // set the new window dimens + windowWidth = windowWidthNew; + windowHeight = windowHeightNew; + // update all dynamic elements + el.redrawSlider(); + } + } + + /** + * =================================================================================== + * = PUBLIC FUNCTIONS + * =================================================================================== + */ + + /** + * Performs slide transition to the specified slide + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + */ + el.goToSlide = function(slideIndex, direction){ + // if plugin is currently in motion, ignore request + if(slider.working || slider.active.index == slideIndex) return; + // declare that plugin is in motion + slider.working = true; + // store the old index + slider.oldIndex = slider.active.index; + // if slideIndex is less than zero, set active index to last child (this happens during infinite loop) + if(slideIndex < 0){ + slider.active.index = getPagerQty() - 1; + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + }else if(slideIndex >= getPagerQty()){ + slider.active.index = 0; + // set active index to requested slide + }else{ + slider.active.index = slideIndex; + } + // onSlideBefore, onSlideNext, onSlidePrev callbacks + slider.settings.onSlideBefore(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + if(direction == 'next'){ + slider.settings.onSlideNext(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + }else if(direction == 'prev'){ + slider.settings.onSlidePrev(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + } + // check if last slide + slider.active.last = slider.active.index >= getPagerQty() - 1; + // update the pager with active class + if(slider.settings.pager) updatePagerActive(slider.active.index); + // // check for direction control update + if(slider.settings.controls) updateDirectionControls(); + // if slider is set to mode: "fade" + if(slider.settings.mode == 'fade'){ + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){ + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // fade out the visible child and reset its z-index value + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + // fade in the newly requested slide + slider.children.eq(slider.active.index).css('zIndex', 51).fadeIn(slider.settings.speed, function(){ + $(this).css('zIndex', 50); + updateAfterSlideTransition(); + }); + // slider mode is not "fade" + }else{ + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){ + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + var moveBy = 0; + var position = {left: 0, top: 0}; + // if carousel and not infinite loop + if(!slider.settings.infiniteLoop && slider.carousel && slider.active.last){ + if(slider.settings.mode == 'horizontal'){ + // get the last child position + var lastChild = slider.children.eq(slider.children.length - 1); + position = lastChild.position(); + // calculate the position of the last slide + moveBy = slider.viewport.width() - lastChild.outerWidth(); + }else{ + // get last showing index position + var lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + } + // horizontal carousel, going previous while on first slide (infiniteLoop mode) + }else if(slider.carousel && slider.active.last && direction == 'prev'){ + // get the last child position + var eq = slider.settings.moveSlides == 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); + var lastChild = el.children('.bx-clone').eq(eq); + position = lastChild.position(); + // if infinite loop and "Next" is clicked on the last slide + }else if(direction == 'next' && slider.active.index == 0){ + // get the last clone position + position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); + slider.active.last = false; + // normal non-zero requests + }else if(slideIndex >= 0){ + var requestEl = slideIndex * getMoveBy(); + position = slider.children.eq(requestEl).position(); + } + + /* If the position doesn't exist + * (e.g. if you destroy the slider on a next click), + * it doesn't throw an error. + */ + if ("undefined" !== typeof(position)) { + var value = slider.settings.mode == 'horizontal' ? -(position.left - moveBy) : -position.top; + // plugin values to be animated + setPositionProperty(value, 'slide', slider.settings.speed); + } + } + } + + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function(){ + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.last) return; + var pagerIndex = parseInt(slider.active.index) + 1; + el.goToSlide(pagerIndex, 'next'); + } + + /** + * Transitions to the prev slide in the show + */ + el.goToPrevSlide = function(){ + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.index == 0) return; + var pagerIndex = parseInt(slider.active.index) - 1; + el.goToSlide(pagerIndex, 'prev'); + } + + /** + * Starts the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.startAuto = function(preventControlUpdate){ + // if an interval already exists, disregard call + if(slider.interval) return; + // create an interval + slider.interval = setInterval(function(){ + slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide(); + }, slider.settings.pause); + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('stop'); + } + + /** + * Stops the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.stopAuto = function(preventControlUpdate){ + // if no interval exists, disregard call + if(!slider.interval) return; + // clear the interval + clearInterval(slider.interval); + slider.interval = null; + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('start'); + } + + /** + * Returns current slide index (zero-based) + */ + el.getCurrentSlide = function(){ + return slider.active.index; + } + + /** + * Returns number of slides in show + */ + el.getSlideCount = function(){ + return slider.children.length; + } + + /** + * Update all dynamic slider elements + */ + el.redrawSlider = function(){ + // resize all children in ratio to new screen size + slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); + // adjust the height + slider.viewport.css('height', getViewportHeight()); + // update the slide position + if(!slider.settings.ticker) setSlidePosition(); + // if active.last was true before the screen resize, we want + // to keep it last no matter what screen size we end on + if (slider.active.last) slider.active.index = getPagerQty() - 1; + // if the active index (page) no longer exists due to the resize, simply set the index as last + if (slider.active.index >= getPagerQty()) slider.active.last = true; + // if a pager is being displayed and a custom pager is not being used, update it + if(slider.settings.pager && !slider.settings.pagerCustom){ + populatePager(); + updatePagerActive(slider.active.index); + } + } + + /** + * Destroy the current instance of the slider (revert everything back to original state) + */ + el.destroySlider = function(){ + // don't do anything if slider has already been destroyed + if(!slider.initialized) return; + slider.initialized = false; + $('.bx-clone', this).remove(); + slider.children.each(function() { + $(this).data("origStyle") != undefined ? $(this).attr("style", $(this).data("origStyle")) : $(this).removeAttr('style'); + }); + $(this).data("origStyle") != undefined ? this.attr("style", $(this).data("origStyle")) : $(this).removeAttr('style'); + $(this).unwrap().unwrap(); + if(slider.controls.el) slider.controls.el.remove(); + if(slider.controls.next) slider.controls.next.remove(); + if(slider.controls.prev) slider.controls.prev.remove(); + if(slider.pagerEl) slider.pagerEl.remove(); + $('.bx-caption', this).remove(); + if(slider.controls.autoEl) slider.controls.autoEl.remove(); + clearInterval(slider.interval); + if(slider.settings.responsive) $(window).unbind('resize', resizeWindow); + } + + /** + * Reload the slider (revert all DOM changes, and re-initialize) + */ + el.reloadSlider = function(settings){ + if (settings != undefined) options = settings; + el.destroySlider(); + init(); + } + + init(); + + // returns the current jQuery object + return this; + } + +})(jQuery); \ No newline at end of file diff --git a/themes/default-bootstrap/js/jquery/owl.carousel.js b/themes/default-bootstrap/js/jquery/owl.carousel.js deleted file mode 100644 index 08c8358cc..000000000 --- a/themes/default-bootstrap/js/jquery/owl.carousel.js +++ /dev/null @@ -1,1415 +0,0 @@ -/* - * jQuery OwlCarousel v1.27 - * - * Copyright (c) 2013 Bartosz Wojciechowski - * http://www.owlgraphic.com/owlcarousel/ - * - * Licensed under MIT - * - */ - -if ( typeof Object.create !== "function" ) { - Object.create = function( obj ) { - function F() {}; - F.prototype = obj; - return new F(); - }; -} -(function( $, window, document, undefined ) { - - var Carousel = { - init :function(options, el){ - var base = this; - base.options = $.extend({}, $.fn.owlCarousel.options, options); - base.userOptions = options; - var elem = el; - var $elem = $(el); - base.$elem = $elem; - base.loadContent(); - }, - - loadContent : function(){ - var base = this; - - if (typeof base.options.beforeInit === "function") { - base.options.beforeInit.apply(this,[base.$elem]); - } - - if (typeof base.options.jsonPath === "string") { - var url = base.options.jsonPath; - - function getData(data) { - if (typeof base.options.jsonSuccess === "function") { - base.options.jsonSuccess.apply(this,[data]); - } else { - var content = ""; - for(var i in data["owl"]){ - content += data["owl"][i]["item"]; - } - base.$elem.html(content); - } - base.logIn(); - } - $.getJSON(url,getData); - } else { - base.logIn(); - } - }, - - logIn : function(action){ - var base = this; - - base.$elem.css({opacity: 0}); - base.orignalItems = base.options.items; - base.checkBrowser(); - base.wrapperWidth = 0; - base.checkVisible; - base.setVars(); - }, - - setVars : function(){ - var base = this; - if(base.$elem.children().length === 0){return false} - base.baseClass(); - base.eventTypes(); - base.$userItems = base.$elem.children(); - base.itemsAmount = base.$userItems.length; - base.wrapItems(); - base.$owlItems = base.$elem.find(".owl-item"); - base.$owlWrapper = base.$elem.find(".owl-wrapper"); - base.playDirection = "next"; - base.prevItem = 0;//base.options.startPosition; - base.currentItem = 0; //Starting Position - base.customEvents(); - base.onStartup(); - }, - - onStartup : function(){ - var base = this; - base.updateItems(); - base.calculateAll(); - base.buildControls(); - base.updateControls(); - base.response(); - base.moveEvents(); - base.stopOnHover(); - base.owlStatus(); - - if(base.options.transitionStyle !== false){ - base.transitionTypes(base.options.transitionStyle); - } - if(base.options.autoPlay === true){ - base.options.autoPlay = 5000; - } - base.play(); - - base.$elem.find(".owl-wrapper").css("display","block") - - if(!base.$elem.is(":visible")){ - base.watchVisibility(); - } else { - base.$elem.css("opacity",1); - } - base.onstartup = false; - base.eachMoveUpdate(); - if (typeof base.options.afterInit === "function") { - base.options.afterInit.apply(this,[base.$elem]); - } - }, - - eachMoveUpdate : function(){ - var base = this; - - if(base.options.lazyLoad === true){ - base.lazyLoad(); - } - if(base.options.autoHeight === true){ - base.autoHeight(); - } - if(base.options.addClassActive === true){ - base.addClassActive(); - } - if (typeof base.options.afterAction === "function") { - base.options.afterAction.apply(this,[base.$elem]); - } - }, - - updateVars : function(){ - var base = this; - if(typeof base.options.beforeUpdate === "function") { - base.options.beforeUpdate.apply(this,[base.$elem]); - } - base.watchVisibility(); - base.updateItems(); - base.calculateAll(); - base.updatePosition(); - base.updateControls(); - base.eachMoveUpdate(); - if(typeof base.options.afterUpdate === "function") { - base.options.afterUpdate.apply(this,[base.$elem]); - } - }, - - reload : function(elements){ - var base = this; - setTimeout(function(){ - base.updateVars(); - },0) - }, - - watchVisibility : function(){ - var base = this; - - if(base.$elem.is(":visible") === false){ - base.$elem.css({opacity: 0}); - clearInterval(base.autoPlayInterval); - clearInterval(base.checkVisible); - } else { - return false; - } - base.checkVisible = setInterval(function(){ - if (base.$elem.is(":visible")) { - base.reload(); - base.$elem.animate({opacity: 1},200); - clearInterval(base.checkVisible); - } - }, 500); - }, - - wrapItems : function(){ - var base = this; - base.$userItems.wrapAll("
    ").wrap("
    "); - base.$elem.find(".owl-wrapper").wrap("
    "); - base.wrapperOuter = base.$elem.find(".owl-wrapper-outer"); - base.$elem.css("display","block"); - }, - - - - - - baseClass : function(){ - var base = this; - var hasBaseClass = base.$elem.hasClass(base.options.baseClass); - var hasThemeClass = base.$elem.hasClass(base.options.theme); - base.$elem.data("owl-originalStyles", base.$elem.attr("style")) - .data("owl-originalClasses", base.$elem.attr("class")); - - if(!hasBaseClass){ - base.$elem.addClass(base.options.baseClass); - } - - if(!hasThemeClass){ - base.$elem.addClass(base.options.theme); - } - }, - - updateItems : function(){ - var base = this; - - if(base.options.responsive === false){ - return false; - } - if(base.options.singleItem === true){ - base.options.items = base.orignalItems = 1; - base.options.itemsDesktop = false; - base.options.itemsDesktopSmall = false; - base.options.itemsTablet = false; - base.options.itemsTabletSmall = false; - base.options.itemsMobile = false; - return false; - } - - var width = $(base.options.responsiveBaseWidth).width(); - - if(width > (base.options.itemsDesktop[0] || base.orignalItems) ){ - base.options.items = base.orignalItems - } - - if(width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false){ - base.options.items = base.options.itemsDesktop[1]; - } - - if(width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false){ - base.options.items = base.options.itemsDesktopSmall[1]; - } - - if(width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false){ - base.options.items = base.options.itemsTablet[1]; - } - - if(width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false){ - base.options.items = base.options.itemsTabletSmall[1]; - } - - if(width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false){ - base.options.items = base.options.itemsMobile[1]; - } - - //if number of items is less than declared - if(base.options.items > base.itemsAmount){ - base.options.items = base.itemsAmount; - } - }, - - response : function(){ - var base = this, - smallDelay; - if(base.options.responsive !== true){ - return false - } - var lastWindowWidth = $(window).width(); - - base.resizer = function(){ - if($(window).width() !== lastWindowWidth){ - if(base.options.autoPlay !== false){ - clearInterval(base.autoPlayInterval); - } - clearTimeout(smallDelay); - smallDelay = setTimeout(function(){ - lastWindowWidth = $(window).width(); - base.updateVars(); - },base.options.responsiveRefreshRate); - } - } - $(window).resize(base.resizer) - }, - - updatePosition : function(){ - var base = this; - - if(base.browser.support3d === true){ - if(base.positionsInArray[base.currentItem] > base.maximumPixels){ - base.transition3d(base.positionsInArray[base.currentItem]); - } else { - base.transition3d(0); - base.currentItem = 0; - } - } else{ - if(base.positionsInArray[base.currentItem] > base.maximumPixels){ - base.css2slide(base.positionsInArray[base.currentItem]); - } else { - base.css2slide(0); - base.currentItem = 0; - } - } - if(base.options.autoPlay !== false){ - base.checkAp(); - } - }, - - appendItemsSizes : function(){ - var base = this; - - var roundPages = 0; - var lastItem = base.itemsAmount - base.options.items; - - base.$owlItems.each(function(index){ - var $this = $(this); - $this - .css({"width": base.itemWidth}) - .data("owl-item",Number(index)); - - if(index % base.options.items === 0 || index === lastItem){ - if(!(index > lastItem)){ - roundPages +=1; - } - } - $this.data("owl-roundPages",roundPages) - }); - }, - - appendWrapperSizes : function(){ - var base = this; - var width = 0; - - var width = base.$owlItems.length * base.itemWidth; - - base.$owlWrapper.css({ - "width": width*2, - "left": 0 - }); - base.appendItemsSizes(); - }, - - calculateAll : function(){ - var base = this; - base.calculateWidth(); - base.appendWrapperSizes(); - base.loops(); - base.max(); - }, - - calculateWidth : function(){ - var base = this; - base.itemWidth = Math.round(base.$elem.width()/base.options.items) - }, - - max : function(){ - var base = this; - base.maximumItem = base.itemsAmount - base.options.items; - var maximum = (base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth; - maximum = maximum * -1 - base.maximumPixels = maximum; - return maximum; - }, - - min : function(){ - return 0; - }, - - loops : function(){ - var base = this; - - base.positionsInArray = [0]; - var elWidth = 0; - - for(var i = 0; i").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem); - } - if(base.options.pagination === true){ - base.buildPagination(); - } - if(base.options.navigation === true){ - base.buildButtons(); - } - }, - - buildButtons : function(){ - var base = this; - var buttonsWrapper = $("
    ") - base.owlControls.append(buttonsWrapper); - - base.buttonPrev = $("
    ",{ - "class" : "owl-prev", - "html" : base.options.navigationText[0] || "" - }); - - base.buttonNext = $("
    ",{ - "class" : "owl-next", - "html" : base.options.navigationText[1] || "" - }); - - buttonsWrapper - .append(base.buttonPrev) - .append(base.buttonNext); - - buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function(event){ - event.preventDefault(); - if($(this).hasClass("owl-next")){ - base.next(); - } else{ - base.prev(); - } - }) - }, - - buildPagination : function(){ - var base = this; - - base.paginationWrapper = $("
    "); - base.owlControls.append(base.paginationWrapper); - - base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function(event){ - event.preventDefault(); - if(Number($(this).data("owl-page")) !== base.currentItem){ - base.goTo( Number($(this).data("owl-page")), true); - } - }); - }, - - updatePagination : function(){ - var base = this; - if(base.options.pagination === false){ - return false; - } - - base.paginationWrapper.html(""); - - var counter = 0; - var lastPage = base.itemsAmount - base.itemsAmount % base.options.items; - - for(var i = 0; i",{ - "class" : "owl-page" - }); - var paginationButtonInner = $("",{ - "text": base.options.paginationNumbers === true ? counter : "", - "class": base.options.paginationNumbers === true ? "owl-numbers" : "" - }); - paginationButton.append(paginationButtonInner); - - paginationButton.data("owl-page",lastPage === i ? lastItem : i); - paginationButton.data("owl-roundPages",counter); - - base.paginationWrapper.append(paginationButton); - } - } - base.checkPagination(); - }, - checkPagination : function(){ - var base = this; - if(base.options.pagination === false){ - return false; - } - base.paginationWrapper.find(".owl-page").each(function(i,v){ - if($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages") ){ - base.paginationWrapper - .find(".owl-page") - .removeClass("active"); - $(this).addClass("active"); - } - }); - }, - - checkNavigation : function(){ - var base = this; - - if(base.options.navigation === false){ - return false; - } - if(base.options.rewindNav === false){ - if(base.currentItem === 0 && base.maximumItem === 0){ - base.buttonPrev.addClass("disabled"); - base.buttonNext.addClass("disabled"); - } else if(base.currentItem === 0 && base.maximumItem !== 0){ - base.buttonPrev.addClass("disabled"); - base.buttonNext.removeClass("disabled"); - } else if (base.currentItem === base.maximumItem){ - base.buttonPrev.removeClass("disabled"); - base.buttonNext.addClass("disabled"); - } else if(base.currentItem !== 0 && base.currentItem !== base.maximumItem){ - base.buttonPrev.removeClass("disabled"); - base.buttonNext.removeClass("disabled"); - } - } - }, - - updateControls : function(){ - var base = this; - base.updatePagination(); - base.checkNavigation(); - if(base.owlControls){ - if(base.options.items === base.itemsAmount){ - base.owlControls.hide(); - } else { - base.owlControls.show(); - } - } - }, - - destroyControls : function(){ - var base = this; - if(base.owlControls){ - base.owlControls.remove(); - } - }, - - next : function(speed){ - var base = this; - - if(base.isTransition){ - return false; - } - - base.storePrevItem = base.currentItem; - - base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1; - if(base.currentItem > base.maximumItem + (base.options.scrollPerPage == true ? (base.options.items - 1) : 0)){ - if(base.options.rewindNav === true){ - base.currentItem = 0; - speed = "rewind"; - } else { - base.currentItem = base.maximumItem; - return false; - } - } - base.goTo(base.currentItem,speed); - }, - - prev : function(speed){ - var base = this; - - if(base.isTransition){ - return false; - } - - base.storePrevItem = base.currentItem; - - if(base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items){ - base.currentItem = 0 - } else { - base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1; - } - if(base.currentItem < 0){ - if(base.options.rewindNav === true){ - base.currentItem = base.maximumItem; - speed = "rewind" - } else { - base.currentItem =0; - return false; - } - } - base.goTo(base.currentItem,speed); - }, - - goTo : function(position,speed,drag){ - var base = this; - - if(base.isTransition){ - return false; - } - base.getPrevItem(); - if(typeof base.options.beforeMove === "function") { - base.options.beforeMove.apply(this,[base.$elem]); - } - if(position >= base.maximumItem){ - position = base.maximumItem; - } - else if( position <= 0 ){ - position = 0; - } - - base.currentItem = base.owl.currentItem = position; - if( base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true){ - base.swapSpeed(0) - if(base.browser.support3d === true){ - base.transition3d(base.positionsInArray[position]); - } else { - base.css2slide(base.positionsInArray[position],1); - } - base.singleItemTransition(); - base.afterGo(); - return false; - } - var goToPixel = base.positionsInArray[position]; - - if(base.browser.support3d === true){ - base.isCss3Finish = false; - - if(speed === true){ - base.swapSpeed("paginationSpeed"); - setTimeout(function() { - base.isCss3Finish = true; - }, base.options.paginationSpeed); - - } else if(speed === "rewind" ){ - base.swapSpeed(base.options.rewindSpeed); - setTimeout(function() { - base.isCss3Finish = true; - }, base.options.rewindSpeed); - - } else { - base.swapSpeed("slideSpeed"); - setTimeout(function() { - base.isCss3Finish = true; - }, base.options.slideSpeed); - } - base.transition3d(goToPixel); - } else { - if(speed === true){ - base.css2slide(goToPixel, base.options.paginationSpeed); - } else if(speed === "rewind" ){ - base.css2slide(goToPixel, base.options.rewindSpeed); - } else { - base.css2slide(goToPixel, base.options.slideSpeed); - } - } - base.afterGo(); - }, - - getPrevItem : function(){ - var base = this; - base.prevItem = base.owl.prevItem = base.storePrevItem === undefined ? base.currentItem : base.storePrevItem; - base.storePrevItem = undefined; - }, - - jumpTo : function(position){ - var base = this; - base.getPrevItem(); - if(typeof base.options.beforeMove === "function") { - base.options.beforeMove.apply(this,[base.$elem]); - } - if(position >= base.maximumItem || position === -1){ - position = base.maximumItem; - } - else if( position <= 0 ){ - position = 0; - } - base.swapSpeed(0) - if(base.browser.support3d === true){ - base.transition3d(base.positionsInArray[position]); - } else { - base.css2slide(base.positionsInArray[position],1); - } - base.currentItem = base.owl.currentItem = position; - base.afterGo(); - }, - - afterGo : function(){ - var base = this; - base.checkPagination(); - base.checkNavigation(); - base.eachMoveUpdate(); - - if(typeof base.options.afterMove === "function") { - base.options.afterMove.apply(this,[base.$elem]); - } - if(base.options.autoPlay !== false){ - base.checkAp(); - } - }, - - stop : function(){ - var base = this; - base.apStatus = "stop"; - clearInterval(base.autoPlayInterval); - }, - - checkAp : function(){ - var base = this; - if(base.apStatus !== "stop"){ - base.play(); - } - }, - - play : function(){ - var base = this; - base.apStatus = "play"; - if(base.options.autoPlay === false){ - return false; - } - clearInterval(base.autoPlayInterval); - base.autoPlayInterval = setInterval(function(){ - base.next(true); - },base.options.autoPlay); - }, - - swapSpeed : function(action){ - var base = this; - if(action === "slideSpeed"){ - base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed)); - } else if(action === "paginationSpeed" ){ - base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed)); - } else if(typeof action !== "string"){ - base.$owlWrapper.css(base.addCssSpeed(action)); - } - }, - - addCssSpeed : function(speed){ - var base = this; - return { - "-webkit-transition": "all "+ speed +"ms ease", - "-moz-transition": "all "+ speed +"ms ease", - "-o-transition": "all "+ speed +"ms ease", - "transition": "all "+ speed +"ms ease" - }; - }, - - removeTransition : function(){ - return { - "-webkit-transition": "", - "-moz-transition": "", - "-o-transition": "", - "transition": "" - }; - }, - - doTranslate : function(pixels){ - return { - "-webkit-transform": "translate3d("+pixels+"px, 0px, 0px)", - "-moz-transform": "translate3d("+pixels+"px, 0px, 0px)", - "-o-transform": "translate3d("+pixels+"px, 0px, 0px)", - "-ms-transform": "translate3d("+pixels+"px, 0px, 0px)", - "transform": "translate3d("+pixels+"px, 0px,0px)" - }; - }, - - transition3d : function(value){ - var base = this; - base.$owlWrapper.css(base.doTranslate(value)); - }, - - css2move : function(value){ - var base = this; - base.$owlWrapper.css({"left" : value}) - }, - - css2slide : function(value,speed){ - var base = this; - - base.isCssFinish = false; - base.$owlWrapper.stop(true,true).animate({ - "left" : value - }, { - duration : speed || base.options.slideSpeed , - complete : function(){ - base.isCssFinish = true; - } - }); - }, - - checkBrowser : function(){ - var base = this; - - //Check 3d support - var translate3D = "translate3d(0px, 0px, 0px)", - tempElem = document.createElement("div"); - - tempElem.style.cssText= " -moz-transform:" + translate3D + - "; -ms-transform:" + translate3D + - "; -o-transform:" + translate3D + - "; -webkit-transform:" + translate3D + - "; transform:" + translate3D; - var regex = /translate3d\(0px, 0px, 0px\)/g, - asSupport = tempElem.style.cssText.match(regex), - support3d = (asSupport !== null && asSupport.length === 1); - - var isTouch = "ontouchstart" in window || navigator.msMaxTouchPoints; - - base.browser = { - "support3d" : support3d, - "isTouch" : isTouch - } - }, - - moveEvents : function(){ - var base = this; - if(base.options.mouseDrag !== false || base.options.touchDrag !== false){ - base.gestures(); - base.disabledEvents(); - } - }, - - eventTypes : function(){ - var base = this; - var types = ["s","e","x"]; - - base.ev_types = {}; - - if(base.options.mouseDrag === true && base.options.touchDrag === true){ - types = [ - "touchstart.owl mousedown.owl", - "touchmove.owl mousemove.owl", - "touchend.owl touchcancel.owl mouseup.owl" - ]; - } else if(base.options.mouseDrag === false && base.options.touchDrag === true){ - types = [ - "touchstart.owl", - "touchmove.owl", - "touchend.owl touchcancel.owl" - ]; - } else if(base.options.mouseDrag === true && base.options.touchDrag === false){ - types = [ - "mousedown.owl", - "mousemove.owl", - "mouseup.owl" - ]; - } - - base.ev_types["start"] = types[0]; - base.ev_types["move"] = types[1]; - base.ev_types["end"] = types[2]; - }, - - disabledEvents : function(){ - var base = this; - base.$elem.on("dragstart.owl", function(event) { event.preventDefault();}); - base.$elem.on("mousedown.disableTextSelect", function(e) { - return $(e.target).is('input, textarea, select, option'); - }); - }, - - gestures : function(){ - var base = this; - - var locals = { - offsetX : 0, - offsetY : 0, - baseElWidth : 0, - relativePos : 0, - position: null, - minSwipe : null, - maxSwipe: null, - sliding : null, - dargging: null, - targetElement : null - } - - base.isCssFinish = true; - - function getTouches(event){ - if(event.touches){ - return { - x : event.touches[0].pageX, - y : event.touches[0].pageY - } - } else { - if(event.pageX !== undefined){ - return { - x : event.pageX, - y : event.pageY - } - } else { - return { - x : event.clientX, - y : event.clientY - } - } - } - } - - function swapEvents(type){ - if(type === "on"){ - $(document).on(base.ev_types["move"], dragMove); - $(document).on(base.ev_types["end"], dragEnd); - } else if(type === "off"){ - $(document).off(base.ev_types["move"]); - $(document).off(base.ev_types["end"]); - } - } - - function dragStart(event) { - var event = event.originalEvent || event || window.event; - - if(base.isCssFinish === false && !base.options.dragBeforeAnimFinish ){ - return false; - } - if(base.isCss3Finish === false && !base.options.dragBeforeAnimFinish ){ - return false; - } - - if(base.options.autoPlay !== false){ - clearInterval(base.autoPlayInterval); - } - - if(base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")){ - base.$owlWrapper.addClass("grabbing") - } - - base.newPosX = 0; - base.newRelativeX = 0; - - $(this).css(base.removeTransition()); - - var position = $(this).position(); - locals.relativePos = position.left; - - locals.offsetX = getTouches(event).x - position.left; - locals.offsetY = getTouches(event).y - position.top; - - swapEvents("on"); - - locals.sliding = false; - locals.targetElement = event.target || event.srcElement; - } - - function dragMove(event){ - var event = event.originalEvent || event || window.event; - - base.newPosX = getTouches(event).x- locals.offsetX; - base.newPosY = getTouches(event).y - locals.offsetY; - base.newRelativeX = base.newPosX - locals.relativePos; - - if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) { - locals.dragging = true; - base.options.startDragging.apply(this); - } - - if(base.newRelativeX > 8 || base.newRelativeX < -8 && base.browser.isTouch === true){ - event.preventDefault ? event.preventDefault() : event.returnValue = false; - locals.sliding = true; - } - - if((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false){ - $(document).off("touchmove.owl"); - } - - var minSwipe = function(){ - return base.newRelativeX / 5; - } - var maxSwipe = function(){ - return base.maximumPixels + base.newRelativeX / 5; - } - - base.newPosX = Math.max(Math.min( base.newPosX, minSwipe() ), maxSwipe() ); - if(base.browser.support3d === true){ - base.transition3d(base.newPosX); - } else { - base.css2move(base.newPosX); - } - } - - function dragEnd(event){ - var event = event.originalEvent || event || window.event; - event.target = event.target || event.srcElement; - - locals.dragging = false; - - if(base.browser.isTouch !== true){ - base.$owlWrapper.removeClass("grabbing"); - } - - if(base.newRelativeX !== 0){ - var newPosition = base.getNewPosition(); - base.goTo(newPosition,false,"drag"); - if(locals.targetElement === event.target && base.browser.isTouch !== true){ - $(event.target).on("click.disable", function(ev){ - ev.stopImmediatePropagation(); - ev.stopPropagation(); - ev.preventDefault(); - $(event.target).off("click.disable"); - }); - var handlers = $._data(event.target, "events")["click"]; - var owlStopEvent = handlers.pop(); - handlers.splice(0, 0, owlStopEvent); - } - } - swapEvents("off"); - } - base.$elem.on(base.ev_types["start"], ".owl-wrapper", dragStart); - }, - - getNewPosition : function(){ - var base = this, - newPosition; - - var newPosition = base.improveClosest(); - if(newPosition>base.maximumItem){ - base.currentItem = base.maximumItem; - newPosition = base.maximumItem; - } else if( base.newPosX >=0 ){ - newPosition = 0; - base.currentItem = 0; - } - return newPosition; - }, - - improveClosest : function(){ - var base = this; - var array = base.positionsInArray; - var goal = base.newPosX; - var closest = null; - $.each(array, function(i,v){ - if( goal - (base.itemWidth/20) > array[i+1] && goal - (base.itemWidth/20)< v && base.moveDirection() === "left") { - closest = v; - base.currentItem = i; - } - else if (goal + (base.itemWidth/20) < v && goal + (base.itemWidth/20) > array[i+1] && base.moveDirection() === "right"){ - closest = array[i+1]; - base.currentItem = i+1; - } - }); - return base.currentItem; - }, - - moveDirection : function(){ - var base = this, - direction; - if(base.newRelativeX < 0 ){ - direction = "right" - base.playDirection = "next" - } else { - direction = "left" - base.playDirection = "prev" - } - return direction - }, - - customEvents : function(){ - var base = this; - base.$elem.on("owl.next",function(){ - base.next(); - }); - base.$elem.on("owl.prev",function(){ - base.prev(); - }); - base.$elem.on("owl.play",function(event,speed){ - base.options.autoPlay = speed; - base.play(); - base.hoverStatus = "play"; - }); - base.$elem.on("owl.stop",function(){ - base.stop(); - base.hoverStatus = "stop"; - }); - base.$elem.on("owl.goTo",function(event,item){ - base.goTo(item) - }); - base.$elem.on("owl.jumpTo",function(event,item){ - base.jumpTo(item) - }); - }, - - stopOnHover : function(){ - var base = this; - if(base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false){ - base.$elem.on("mouseover", function(){ - base.stop(); - }); - base.$elem.on("mouseout", function(){ - if(base.hoverStatus !== "stop"){ - base.play(); - } - }); - } - }, - - lazyLoad : function(){ - var base = this; - - if(base.options.lazyLoad === false){ - return false; - } - for(var i=0; i= base.currentItem; - } else { - follow = true; - } - if(follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length){ - base.lazyPreload($item,$lazyImg); - } - } - }, - - lazyPreload : function($item,$lazyImg){ - var base = this, - iterations = 0; - $lazyImg[0].src = $lazyImg.data("src"); - checkLazyImage(); - - function checkLazyImage(){ - iterations += 1; - if (base.completeImg( $lazyImg.get(0) )) { - showImage(); - } else if(iterations <= 100){//if image loads in less than 10 seconds - setTimeout(checkLazyImage,100); - } else { - showImage(); - } - } - function showImage(){ - $item.data("owl-loaded", "loaded").removeClass("loading"); - $lazyImg.removeAttr("data-src"); - base.options.lazyEffect === "fade" ? $lazyImg.fadeIn(400) : $lazyImg.show(); - } - }, - - autoHeight : function(){ - var base = this; - var $currentimg = $(base.$owlItems[base.currentItem]).find("img"); - - if($currentimg.get(0) !== undefined ){ - var iterations = 0; - checkImage(); - } else { - addHeight(); - } - function checkImage(){ - iterations += 1; - if ( base.completeImg($currentimg.get(0)) ) { - addHeight(); - } else if(iterations <= 100){ //if image loads in less than 10 seconds - setTimeout(checkImage,100); - } else { - base.wrapperOuter.css("height", ""); //Else remove height attribute - } - } - - function addHeight(){ - var $currentItem = $(base.$owlItems[base.currentItem]).height(); - base.wrapperOuter.css("height",$currentItem+"px"); - if(!base.wrapperOuter.hasClass("autoHeight")){ - setTimeout(function(){ - base.wrapperOuter.addClass("autoHeight"); - },0); - } - } - }, - - completeImg : function(img) { - if (!img.complete) { - return false; - } - if (typeof img.naturalWidth !== "undefined" && img.naturalWidth == 0) { - return false; - } - return true; - }, - - addClassActive : function(){ - var base = this; - base.$owlItems.removeClass("active"); - for(var i=base.currentItem; i= base.$userItems.length || position === -1){ - base.$userItems.eq(-1).after(htmlString) - } else { - base.$userItems.eq(position).before(htmlString) - } - - base.setVars(); - }, - - removeItem : function(targetPosition){ - var base = this, - position; - - if(base.$elem.children().length === 0){return false} - - if(targetPosition === undefined || targetPosition === -1){ - position = -1; - } else { - position = targetPosition; - } - - base.unWrap(); - base.$userItems.eq(position).remove(); - base.setVars(); - } - - }; - - $.fn.owlCarousel = function( options ){ - return this.each(function() { - if($(this).data("owl-init") === true){ - return false; - } - $(this).data("owl-init", true); - var carousel = Object.create( Carousel ); - carousel.init( options, this ); - $.data( this, "owlCarousel", carousel ); - }); - }; - - - - - $.fn.owlCarousel.options = { - items : 5, - itemsDesktop : [1199,4], - itemsDesktopSmall : [979,3], - itemsTablet: [768,2], - itemsTabletSmall: false, - itemsMobile : [479,1], - singleItem:false, - - slideSpeed : 200, - paginationSpeed : 800, - rewindSpeed : 1000, - - autoPlay : false, - stopOnHover : false, - - navigation : false, - navigationText : ["prev","next"], - rewindNav : true, - scrollPerPage : false, - - pagination : true, - paginationNumbers: false, - - responsive: true, - responsiveRefreshRate : 200, - responsiveBaseWidth: window, - - baseClass : "owl-carousel", - theme : "owl-theme", - - lazyLoad : false, - lazyFollow : true, - lazyEffect : "fade", - - autoHeight : false, - - jsonPath : false, - jsonSuccess : false, - - dragBeforeAnimFinish : true, - mouseDrag : true, - touchDrag : true, - - addClassActive : false, - transitionStyle : false, - - beforeUpdate : false, - afterUpdate : false, - beforeInit : false, - afterInit : false, - beforeMove: false, - afterMove: false, - afterAction : false, - startDragging : false - - }; -})( jQuery, window, document ); \ No newline at end of file diff --git a/themes/default-bootstrap/js/modules/blockcart/ajax-cart.js b/themes/default-bootstrap/js/modules/blockcart/ajax-cart.js index fb8dcc0db..4549e3610 100644 --- a/themes/default-bootstrap/js/modules/blockcart/ajax-cart.js +++ b/themes/default-bootstrap/js/modules/blockcart/ajax-cart.js @@ -41,7 +41,7 @@ var ajaxCart = { return false; }); //for product page 'add' button... - $('#add_to_cart input').unbind('click').click(function(){ + $('#add_to_cart button').unbind('click').click(function(){ ajaxCart.add( $('#product_page_product_id').val(), $('#idCombination').val(), true, null, $('#quantity_wanted').val(), null); return false; }); @@ -169,7 +169,7 @@ var ajaxCart = { //reactive the button when adding has finished if (addedFromProductPage) - $('#add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled'); + $('#add_to_cart button').removeAttr('disabled').removeClass('disabled'); else $('.ajax_add_to_cart_button').removeAttr('disabled'); }, @@ -185,7 +185,7 @@ var ajaxCart = { //disabled the button when adding to not double add if user double click if (addedFromProductPage) { - $('#add_to_cart input').attr('disabled', true).removeClass('exclusive').addClass('exclusive_disabled'); + $('#add_to_cart button').attr('disabled', true).addClass('disabled'); $('.filled').removeClass('filled'); } else @@ -208,32 +208,36 @@ var ajaxCart = { if (whishlist && !jsonData.errors) WishlistAddProductCart(whishlist[0], idProduct, idCombination, whishlist[1]); - // add the picture to the cart - var $element = $(callerElement).parents('.ajax_block_product').find('a.product_image img,a.product_img_link img'); - if (!$element.length) - $element = $('#bigpic'); - var $picture = $element.clone(); - var pictureOffsetOriginal = $element.offset(); - pictureOffsetOriginal.right = $(window).innerWidth() - pictureOffsetOriginal.left - $element.width(); + // add the picture to the cart + var $element = $(callerElement).parents('.ajax_block_product').find('a.product_image img,a.product_img_link img'); + if (!$element.length) + $element = $('#bigpic'); + var $picture = $element.clone(); + var pictureOffsetOriginal = $element.offset(); + pictureOffsetOriginal.right = $(window).innerWidth() - pictureOffsetOriginal.left - $element.width(); - if ($picture.length) - { - $picture.css({ - position: 'absolute', - top: pictureOffsetOriginal.top, - right: pictureOffsetOriginal.right - }); - } - - var pictureOffset = $picture.offset(); - var cartBlock = $('#cart_block'); - if (!$('#cart_block')[0] || !$('#cart_block').offset().top || !$('#cart_block').offset().left) - cartBlock = $('#shopping_cart'); - var cartBlockOffset = cartBlock.offset(); - cartBlockOffset.right = $(window).innerWidth() - cartBlockOffset.left - cartBlock.width(); + if ($picture.length) + { + $picture.css({ + position: 'absolute', + top: pictureOffsetOriginal.top, + right: pictureOffsetOriginal.right + }); + } + if (typeof(contentOnly) != 'undefined') { + var $contentOnly = contentOnly; + } + var pictureOffset = $picture.offset(); + if (($contentOnly && $contentOnly !=true) || !$contentOnly) { + var cartBlock = $('#cart_block'); + if (!$('#cart_block')[0] || !$('#cart_block').offset().top || !$('#cart_block').offset().left) + cartBlock = $('#shopping_cart'); + var cartBlockOffset = cartBlock.offset(); + cartBlockOffset.right = $(window).innerWidth() - cartBlockOffset.left - cartBlock.width(); + } // Check if the block cart is activated for the animation - if (cartBlockOffset != undefined && $picture.length) + if (cartBlockOffset != undefined && $picture.length && (($contentOnly && $contentOnly !=true) || !$contentOnly)) { $picture.appendTo('body'); $picture @@ -263,15 +267,20 @@ var ajaxCart = { } }); } - else + else if ($contentOnly && $contentOnly !=false) { + window.parent.ajaxCart.updateCartInformation(jsonData, addedFromProductPage); ajaxCart.updateCartInformation(jsonData, addedFromProductPage); + } + else { + ajaxCart.updateCartInformation(jsonData, addedFromProductPage); + } }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("Impossible to add the product to the cart.\n\ntextStatus: '" + textStatus + "'\nerrorThrown: '" + errorThrown + "'\nresponseText:\n" + XMLHttpRequest.responseText); //reactive the button when adding has finished if (addedFromProductPage) - $('#add_to_cart input').removeAttr('disabled').addClass('exclusive').removeClass('exclusive_disabled'); + $('#add_to_cart button').removeAttr('disabled').removeClass('disabled'); else $(callerElement).removeAttr('disabled'); } @@ -487,7 +496,7 @@ var ajaxCart = { content += ''; content += ''; if (this.hasAttributes) - content += '
    '; + content += '
    '; if (this.hasCustomizedDatas) content += ajaxCart.displayNewCustomizedDatas(this); if (this.hasAttributes) content += '
    '; @@ -606,8 +615,8 @@ var ajaxCart = { var t = $('#layer_cart').outerHeight(true); if (t < h) var n = parseInt(((h-t) / 2) + s) + 'px'; - $('.layer_cart_overlay').css('width',$('body').width()); - $('.layer_cart_overlay').css('height',$('body').height()); + $('.layer_cart_overlay').css('width','100%'); + $('.layer_cart_overlay').css('height','100%'); $('.layer_cart_overlay').show(); $('#layer_cart').css({'top': n}).fadeIn('fast'); crossselling_serialScroll(); @@ -771,12 +780,13 @@ $(document).ready(function() }); $('#cart_navigation input').click(function(){ - $(this).attr('disabled', true).removeClass('exclusive').addClass('exclusive_disabled'); + $(this).attr('disabled', true).addClass('disabled'); $(this).closest("form").get(0).submit(); }); $('#layer_cart .cross, #layer_cart .continue, .layer_cart_overlay').click(function(){ - $('.layer_cart_overlay').hide(); $('#layer_cart').fadeOut('fast'); return false; + $('.layer_cart_overlay').hide(); + $('#layer_cart').fadeOut('fast'); return false; }); }); @@ -795,35 +805,16 @@ function HoverWatcher(selector){ }) } -function crossselling_serialScrollFixLock(event, targeted, scrolled, items, position) -{ - serialScrollNbImages = $('#blockcart_list li:visible').length; - serialScrollNbImagesDisplayed = 4; - - var leftArrow = position == 0 ? true : false; - var rightArrow = position + serialScrollNbImagesDisplayed >= serialScrollNbImages ? true : false; - - $('#blockcart_scroll_left').css('cursor', leftArrow ? 'default' : 'pointer').css('display', leftArrow ? 'none' : 'block').fadeTo(0, leftArrow ? 0 : 1); - $('#blockcart_scroll_right').css('cursor', rightArrow ? 'default' : 'pointer').fadeTo(0, rightArrow ? 0 : 1).css('display', rightArrow ? 'none' : 'block'); - return true; -} - function crossselling_serialScroll() { - $('#blockcart_list').serialScroll({ - items:'li:visible', - prev:'#blockcart_scroll_left', - next:'#blockcart_scroll_right', - axis:'x', - offset:0, - start:0, - stop:true, - onBefore:crossselling_serialScrollFixLock, - duration:300, - step: 1, - lazy: true, - lock: false, - force:false + $('#blockcart_caroucel').bxSlider({ + minSlides: 2, + maxSlides: 4, + slideWidth: 178, + slideMargin: 20, + moveSlides: 1, + infiniteLoop: false, + hideControlOnEnd: true, + pager: false }); - $('#blockcart_list').trigger('goto', 0); } \ No newline at end of file diff --git a/themes/default-bootstrap/js/modules/crossselling/js/crossselling.js b/themes/default-bootstrap/js/modules/crossselling/js/crossselling.js new file mode 100644 index 000000000..e2584aa14 --- /dev/null +++ b/themes/default-bootstrap/js/modules/crossselling/js/crossselling.js @@ -0,0 +1,38 @@ +/* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ +$(document).ready(function() { + $('#crossselling_list_car').bxSlider({ + minSlides: 2, + maxSlides: 6, + slideWidth: 178, + slideMargin: 20, + pager: false, + nextText: '', + prevText: '', + moveSlides:1, + infiniteLoop:false, + hideControlOnEnd: true + }); +}); diff --git a/themes/default-bootstrap/js/modules/homeslider/js/homeslider.js b/themes/default-bootstrap/js/modules/homeslider/js/homeslider.js index 41eef5b48..a5a400d12 100644 --- a/themes/default-bootstrap/js/modules/homeslider/js/homeslider.js +++ b/themes/default-bootstrap/js/modules/homeslider/js/homeslider.js @@ -24,7 +24,7 @@ * International Registered Trademark & Property of PrestaShop SA */ -$(function(){ +$(document).ready(function(){ if (typeof(homeslider_speed) == 'undefined') homeslider_speed = 500; @@ -33,5 +33,14 @@ $(function(){ if (typeof(homeslider_loop) == 'undefined') homeslider_loop = true; - $('#homeslider').bxSlider(); + $('#homeslider').bxSlider({ + infiniteLoop: homeslider_loop, + hideControlOnEnd: true, + pager: false, + autoHover: true, + auto: homeslider_loop, + speed: homeslider_speed, + pause: homeslider_pause, + controls: true + }); }); \ No newline at end of file diff --git a/themes/default-bootstrap/js/modules/productscategory/productscategory.js b/themes/default-bootstrap/js/modules/productscategory/productscategory.js new file mode 100644 index 000000000..7b2c50fa1 --- /dev/null +++ b/themes/default-bootstrap/js/modules/productscategory/productscategory.js @@ -0,0 +1,38 @@ +/* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ +$(document).ready(function() { + $('#bxslider1').bxSlider({ + minSlides: 2, + maxSlides: 6, + slideWidth: 178, + slideMargin: 20, + pager: false, + nextText: '', + prevText: '', + moveSlides:1, + infiniteLoop:false, + hideControlOnEnd: true + }); +}); \ No newline at end of file diff --git a/themes/default-bootstrap/js/order-opc.js b/themes/default-bootstrap/js/order-opc.js index 7e16dd46d..e8eeccc26 100644 --- a/themes/default-bootstrap/js/order-opc.js +++ b/themes/default-bootstrap/js/order-opc.js @@ -62,6 +62,7 @@ function updatePaymentMethodsDisplay() success: function(json) { updatePaymentMethods(json); + $("select.form-control,input[type='checkbox']").uniform(); } }); $(this).fadeOut('slow'); diff --git a/themes/default-bootstrap/js/product.js b/themes/default-bootstrap/js/product.js index f336069fe..fabe6968d 100644 --- a/themes/default-bootstrap/js/product.js +++ b/themes/default-bootstrap/js/product.js @@ -511,7 +511,7 @@ $(document).ready(function() stop:true, onBefore:serialScrollFixLock, duration:700, - step: 2, + step: 1, lazy: true, lock: false, force:false, @@ -570,12 +570,14 @@ $(document).ready(function() $('#resetImages').click(function() { refreshProductImages(0); }); - - $('.thickbox').fancybox({ - 'hideOnContentClick': true, - 'transitionIn' : 'elastic', - 'transitionOut' : 'elastic' - }); + if (contentOnly == false) + $('.thickbox').fancybox({ + 'hideOnContentClick': true, + 'transitionIn' : 'elastic', + 'transitionOut' : 'elastic' + }); + else + $('.thickbox').click(function(){return false}) }); function saveCustomization() @@ -726,3 +728,35 @@ function checkUrl() } } } +// product quantity change buttons +$(document).ready(function(){ + // The button to increment the product value + $('.product_quantity_up').click(function(e){ + e.preventDefault(); + fieldName = $(this).attr('rel'); + var currentVal = parseInt($('input[name='+fieldName+']').val()); + if (quantityAvailable > 0) { + quantityAvailableT = quantityAvailable; + } else { + quantityAvailableT = 100000000; + } + if (!isNaN(currentVal) && currentVal < quantityAvailableT) { + $('input[name='+fieldName+']').val(currentVal + 1).trigger('keyup'); + } else { + $('input[name='+fieldName+']').val(quantityAvailableT); + } + return false; + }); + // The button to decrement the product value + $(".product_quantity_down").click(function(e) { + e.preventDefault(); + fieldName = $(this).attr('rel'); + var currentVal = parseInt($('input[name='+fieldName+']').val()); + if (!isNaN(currentVal) && currentVal > 1) { + $('input[name='+fieldName+']').val(currentVal - 1).trigger('keyup'); + } else { + $('input[name='+fieldName+']').val(1); + } + return false; + }); +}); diff --git a/themes/default-bootstrap/js/quick-view.js b/themes/default-bootstrap/js/quick-view.js index ab0c888e8..52a6d6972 100644 --- a/themes/default-bootstrap/js/quick-view.js +++ b/themes/default-bootstrap/js/quick-view.js @@ -22,12 +22,21 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ - -$(document).ready(function() { - $('.quick-view').hover(function() { +function quick_view() { + $('.quick-view').click(function() { $.fancybox({ - 'type': 'iframe', - 'href': this.href+'&content_only=1' + 'padding': 0, + 'width': 1087, + 'height': 610, + 'type': 'iframe', + 'href': this.rel+'&content_only=1' }); + ajaxCart.refresh(); + return false; }); +} +$(document).ready(function() { + quick_view(); }); + + diff --git a/themes/default-bootstrap/lang/fr.php b/themes/default-bootstrap/lang/fr.php deleted file mode 100644 index abfdc848c..000000000 --- a/themes/default-bootstrap/lang/fr.php +++ /dev/null @@ -1,997 +0,0 @@ - - {l s='Manufacturers:'} + {l s='Brands'} {strip} {if $nbManufacturers == 0}{l s='There are no manufacturers.'} {else} {if $nbManufacturers == 1} - {l s='There is %d manufacturer.' sprintf=$nbManufacturers} + {l s='There is %d brand' sprintf=$nbManufacturers} {else} - {l s='There are %d manufacturers.' sprintf=$nbManufacturers} + {l s='There are %d brands' sprintf=$nbManufacturers} {/if} {/if} @@ -46,12 +46,13 @@ {if $nbManufacturers > 0}
    -
    +
    {include file="$tpl_dir./pagination.tpl"} @@ -68,7 +69,7 @@ {math equation="(total%perLineT)" total=$smarty.foreach.manufacturers.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet} {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if} {if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if} -
  • +
  • {if !isset($customizedDatas.$productId.$productAttributeId) && (!isset($product.is_gift) || !$product.is_gift)} {/if} - {if isset($product.attributes_small) && isset($customizedDatas.$productId.$productAttributeId[$product.id_address_delivery])} + {if isset($product.attributes_small)}
    + {/if} + + {if isset($customizedDatas.$productId.$productAttributeId[$product.id_address_delivery])} {if !isset($product.attributes_small)}
    {/if}
      {foreach from=$customizedDatas.$productId.$productAttributeId[$product.id_address_delivery] key='id_customization' item='customization' name='customizations'} @@ -186,51 +189,52 @@ var generated_date = {$smarty.now|intval};
  • -
    -

    {l s='Product successfully added to your shopping cart' mod='blockcart'}

    -
    - img -
    -
    - - -
    {l s='Quantity:' mod='blockcart'}
    -
    {l s='Total:' mod='blockcart'}
    -
    -
    -
    - -

    {l s='Cart:' mod='blockcart'} {$cart_qties} {l s='item' mod='blockcart'}{l s='items' mod='blockcart'}

    -
    - {l s='Total products' mod='blockcart'}{if $priceDisplay == 1} {l s='(tax exclu.):' mod='blockcart'}{else} {l s='(tax incl.):' mod='blockcart'}{/if} - {if $cart_qties > 0}{convertPrice price=$cart->getOrderTotal(false, Cart::ONLY_PRODUCTS)}{/if} -
    - {if $show_wrapping} -
    - {l s='Wrapping' mod='blockcart'}{if $priceDisplay == 1} {l s='(tax exclu.):' mod='blockcart'}{else} {l s='(tax incl.):' mod='blockcart'}{/if} - {if $priceDisplay == 1}{convertPrice price=$cart->getOrderTotal(false, Cart::ONLY_WRAPPING)}{else}{convertPrice price=$cart->getOrderTotal(true, Cart::ONLY_WRAPPING)}{/if} -
    - {/if} -
    - {l s='Total shipping (tax exclu.):' mod='blockcart'} - {if $shipping_cost_float == 0}{l s='Free shipping!' mod='blockcart'}{else}{$shipping_cost}{/if} -
    - {if $show_tax && isset($tax_cost)} -
    - {l s='Tax' mod='blockcart'} - {$tax_cost} +
    +
    + +

    {l s='Product successfully added to your shopping cart' mod='blockcart'}

    +
    + img +
    +
    + + +
    {l s='Quantity:' mod='blockcart'}
    +
    {l s='Total:' mod='blockcart'}
    - {/if} -
    - {l s='Total' mod='blockcart'}{if $priceDisplay == 1} {l s='(tax exclu.):' mod='blockcart'}{else} {l s='(tax incl.):' mod='blockcart'}{/if} - {if $cart_qties > 0}{if $priceDisplay == 1}{convertPrice price=$cart->getOrderTotal(false)}{else}{convertPrice price=$cart->getOrderTotal(true)}{/if}{/if}
    - {l s='Spend just' mod='blockcart'} {convertPrice price=$free_shipping} {l s='more and get' mod='blockcart'} {l s='FREE SHIPPING!' mod='blockcart'} -
    - {l s='Continue shopping' mod='blockcart'} - {l s='Procedd to checkout' mod='blockcart'} +
    +

    {l s='Cart:' mod='blockcart'} {$cart_qties} {l s='item' mod='blockcart'}{l s='items' mod='blockcart'}

    +
    + {l s='Total products' mod='blockcart'}{if $priceDisplay == 1} {l s='(tax exclu.):' mod='blockcart'}{else} {l s='(tax incl.):' mod='blockcart'}{/if} + {if $cart_qties > 0}{convertPrice price=$cart->getOrderTotal(false, Cart::ONLY_PRODUCTS)}{/if} +
    + {if $show_wrapping} +
    + {l s='Wrapping' mod='blockcart'}{if $priceDisplay == 1} {l s='(tax exclu.):' mod='blockcart'}{else} {l s='(tax incl.):' mod='blockcart'}{/if} + {if $priceDisplay == 1}{convertPrice price=$cart->getOrderTotal(false, Cart::ONLY_WRAPPING)}{else}{convertPrice price=$cart->getOrderTotal(true, Cart::ONLY_WRAPPING)}{/if} +
    + {/if} +
    + {l s='Total shipping (tax exclu.):' mod='blockcart'} + {if $shipping_cost_float == 0}{l s='Free shipping!' mod='blockcart'}{else}{$shipping_cost}{/if} +
    + {if $show_tax && isset($tax_cost)} +
    + {l s='Tax' mod='blockcart'} + {$tax_cost} +
    + {/if} +
    + {l s='Total' mod='blockcart'}{if $priceDisplay == 1} {l s='(tax exclu.):' mod='blockcart'}{else} {l s='(tax incl.):' mod='blockcart'}{/if} + {if $cart_qties > 0}{if $priceDisplay == 1}{convertPrice price=$cart->getOrderTotal(false)}{else}{convertPrice price=$cart->getOrderTotal(true)}{/if}{/if} +
    +
    + {l s='Continue shopping' mod='blockcart'} + {l s='Proceed to checkout' mod='blockcart'} +
    -
    +
    diff --git a/themes/default-bootstrap/modules/blockcart/crossselling.tpl b/themes/default-bootstrap/modules/blockcart/crossselling.tpl new file mode 100644 index 000000000..94d1c97fd --- /dev/null +++ b/themes/default-bootstrap/modules/blockcart/crossselling.tpl @@ -0,0 +1,50 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + + +{if isset($orderProducts) && count($orderProducts) > 0} +
    +

    {l s='Customers who bought this product also bought' mod='blockcart'}

    +
    + +
    +
    +{/if} \ No newline at end of file diff --git a/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl b/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl index 86acc7807..d2e0e05f8 100644 --- a/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl +++ b/themes/default-bootstrap/modules/blockcategories/blockcategories.tpl @@ -24,9 +24,8 @@ *} -{if $blockCategTree && $blockCategTree.children|@count}
    -

    {if isset($currentCategory)}{$currentCategory->name|escape}{else}{l s='Categories' mod='blockcategories'}{/if}

    +

    {l s='Categories' mod='blockcategories'}

      {foreach from=$blockCategTree.children item=child name=blockCategTree} @@ -46,5 +45,4 @@
    -{/if} diff --git a/themes/default-bootstrap/modules/blockspecials/blockspecials.tpl b/themes/default-bootstrap/modules/blockspecials/blockspecials.tpl index 70502da00..0b01e23d2 100644 --- a/themes/default-bootstrap/modules/blockspecials/blockspecials.tpl +++ b/themes/default-bootstrap/modules/blockspecials/blockspecials.tpl @@ -30,7 +30,7 @@ {if $special}
    • - {$special.legend|escape:html:'UTF-8'} + {$special.legend|escape:html:'UTF-8'}
      {$special.name|escape:html:'UTF-8'}
      {if isset($special.description_short) && $special.description_short} diff --git a/themes/default-bootstrap/modules/blockstore/blockstore.tpl b/themes/default-bootstrap/modules/blockstore/blockstore.tpl index 374b1f725..f1f6962ed 100644 --- a/themes/default-bootstrap/modules/blockstore/blockstore.tpl +++ b/themes/default-bootstrap/modules/blockstore/blockstore.tpl @@ -27,7 +27,7 @@

      {l s='Our stores' mod='blockstore'}

      -

      {l s='Our stores' mod='blockstore'}

      +

      {l s='Our stores' mod='blockstore'}

      Lorem ipsum dolor sit amet conse ctetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magn.

      {l s='Discover our stores' mod='blockstore'} diff --git a/themes/default-bootstrap/modules/blockwishlist/managewishlist.tpl b/themes/default-bootstrap/modules/blockwishlist/managewishlist.tpl index 9a9a63a0f..29bed3d59 100644 --- a/themes/default-bootstrap/modules/blockwishlist/managewishlist.tpl +++ b/themes/default-bootstrap/modules/blockwishlist/managewishlist.tpl @@ -43,71 +43,86 @@

      - + {l s='Send this wishlist' mod='blockwishlist'}

      {/if}
      + {assign var='nbItemsPerLine' value=4} + {assign var='nbItemsPerLineTablet' value=3} + {assign var='nbLi' value=$products|@count} + {math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines} + {math equation="nbLi/nbItemsPerLineTablet" nbLi=$nbLi nbItemsPerLineTablet=$nbItemsPerLineTablet assign=nbLinesTablet}
        {foreach from=$products item=product name=i} -
      • -
        - » {l s='Delete' mod='blockwishlist'} + {math equation="(total%perLine)" total=$smarty.foreach.i.total perLine=$nbItemsPerLine assign=totModulo} + {math equation="(total%perLineT)" total=$smarty.foreach.i.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet} + {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if} + {if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if} +
      • +
        + +
        -

        {$product.name|truncate:30:'...'|escape:'htmlall':'UTF-8'}

        - - {if isset($product.attributes_small)} - {$product.attributes_small|escape:'htmlall':'UTF-8'} + +

        + {$product.name|truncate:30:'...'|escape:'htmlall':'UTF-8'} + {if isset($product.attributes_small)} + {$product.attributes_small|escape:'htmlall':'UTF-8'} {/if} +

        +

        - - + +

        - -

        - +

        +
        +
        - +
      • {/foreach}
      {if !$refresh} - +
      -

      +

      - -

      + +
      {section name=i loop=11 start=2} -

      +

      - -

      + +
      {/section} -

      - -

      +
      + +

      * {l s='Required field'}

      {if count($productsBoughts)} -
    {l s='Order reference'} {l s='Date'}{l s='Total price'}{l s='Payment: '}{l s='Total price'}{l s='Payment: '} {l s='Status'}{l s='Invoice'} {l s='Invoice'} 
    + + + {foreach $servers AS $server} + + + + + + + + {/foreach} + +
    {l s='Product' mod='blockwishlist'} diff --git a/themes/default-bootstrap/modules/blockwishlist/view.tpl b/themes/default-bootstrap/modules/blockwishlist/view.tpl index 77afee42a..942ec9387 100644 --- a/themes/default-bootstrap/modules/blockwishlist/view.tpl +++ b/themes/default-bootstrap/modules/blockwishlist/view.tpl @@ -22,12 +22,11 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} -
    -

    {l s='Wishlist' mod='blockwishlist'}

    +

    {l s='Wishlist' mod='blockwishlist'}

    {if $wishlists}

    - {l s='Other wishlists of' mod='blockwishlist'} {$current_wishlist.firstname} {$current_wishlist.lastname}: + {l s='Other wishlists of' mod='blockwishlist'} {$current_wishlist.firstname} {$current_wishlist.lastname}: {foreach from=$wishlists item=wishlist name=i} {if $wishlist.id_wishlist != $current_wishlist.id_wishlist} {$wishlist.name} @@ -40,26 +39,40 @@ {/if}

    + {assign var='nbItemsPerLine' value=3} + {assign var='nbItemsPerLineTablet' value=2} + {assign var='nbLi' value=$products|@count} + {math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines} + {math equation="nbLi/nbItemsPerLineTablet" nbLi=$nbLi nbItemsPerLineTablet=$nbItemsPerLineTablet assign=nbLinesTablet}
      {foreach from=$products item=product name=i} -
    • -
      -
      + {math equation="(total%perLine)" total=$smarty.foreach.i.total perLine=$nbItemsPerLine assign=totModulo} + {math equation="(total%perLineT)" total=$smarty.foreach.i.total perLineT=$nbItemsPerLineTablet assign=totModuloTablet} + {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if} + {if $totModuloTablet == 0}{assign var='totModuloTablet' value=$nbItemsPerLineTablet}{/if} +
    • +
      +
      + -
      -

      {$product.name|truncate:30:'...'|escape:'htmlall':'UTF-8'}

      +
      +
      +
      +

      + {$product.name|truncate:30:'...'|escape:'htmlall':'UTF-8'} + {if isset($product.attributes_small)} + {$product.attributes_small|escape:'htmlall':'UTF-8'} + {/if} +

      - {if isset($product.attributes_small)} - {$product.attributes_small|escape:'htmlall':'UTF-8'} - {/if}

      - +

      -

      +

      -
      -
      -
      - {l s='View' mod='blockwishlist'} - {if isset($product.attribute_quantity) AND $product.attribute_quantity >= 1 OR !isset($product.attribute_quantity) AND $product.product_quantity >= 1} - {if !$ajax} -
      - -
      +
      + {if isset($product.attribute_quantity) AND $product.attribute_quantity >= 1 OR !isset($product.attribute_quantity) AND $product.product_quantity >= 1} + {if !$ajax} +
      + +
      + {/if} + {l s='Add to cart' mod='blockwishlist'} + {else} + {l s='Add to cart' mod='blockwishlist'} {/if} - {l s='Add to cart' mod='blockwishlist'} - {else} - {l s='Add to cart' mod='blockwishlist'} - {/if} + {l s='View' mod='blockwishlist'} +
      +
      +
    • diff --git a/themes/default-bootstrap/modules/cheque/translations/en.php b/themes/default-bootstrap/modules/cheque/translations/en.php new file mode 100644 index 000000000..f5074176c --- /dev/null +++ b/themes/default-bootstrap/modules/cheque/translations/en.php @@ -0,0 +1,17 @@ +cheque_7b4cc4f79be9aae43efd53b4ae5cba4d'] = 'Payment by check'; +$_MODULE['<{cheque}prestashop>cheque_c888438d14855d7d96a2724ee9c306bd'] = 'Your settings have been updated.'; +$_MODULE['<{cheque}prestashop>cheque_5dd532f0a63d89c5af0243b74732f63c'] = 'Contact details'; +$_MODULE['<{cheque}prestashop>cheque_dd7bf230fde8d4836917806aff6a6b27'] = 'Address'; +$_MODULE['<{cheque}prestashop>payment_execution_060bf2d587991d8f090a1309b285291c'] = 'Payments by check'; +$_MODULE['<{cheque}prestashop>payment_execution_1f87346a16cf80c372065de3c54c86d9'] = '(tax incl.)'; +$_MODULE['<{cheque}prestashop>payment_execution_0881a11f7af33bc1b43e437391129d66'] = 'Please confirm your order by clicking \'I confirm my order\''; +$_MODULE['<{cheque}prestashop>payment_execution_46b9e3665f187c739c55983f757ccda0'] = 'I confirm my order'; +$_MODULE['<{cheque}prestashop>payment_return_e1c54fdba2544646684f41ace03b5fda'] = 'Do not forget to include your order number #%d.'; +$_MODULE['<{cheque}prestashop>payment_return_4761b03b53bc2b3bd948bb7443a26f31'] = 'Do not forget to include your order reference %s.'; +$_MODULE['<{cheque}prestashop>payment_return_0db71da7150c27142eef9d22b843b4a9'] = 'If you have questions, comments or concerns, please contact our'; +$_MODULE['<{cheque}prestashop>payment_841728ede901f5134574c4656aba5464'] = 'Pay by check (order processing will take more time)'; diff --git a/themes/default-bootstrap/modules/cheque/translations/it.php b/themes/default-bootstrap/modules/cheque/translations/it.php new file mode 100644 index 000000000..7cf9c6221 --- /dev/null +++ b/themes/default-bootstrap/modules/cheque/translations/it.php @@ -0,0 +1,49 @@ +cheque_7b4cc4f79be9aae43efd53b4ae5cba4d'] = 'Assegno'; +$_MODULE['<{cheque}prestashop>cheque_14e41f4cfd99b10766cc15676d8cda66'] = 'Questo modulo permette di accettare pagamenti tramite assegno.'; +$_MODULE['<{cheque}prestashop>cheque_e09484ba6c16bc20236b63cc0d87ee95'] = 'Sei sicuro di voler cancellare i tuoi dati?'; +$_MODULE['<{cheque}prestashop>cheque_10afbbb4dcb65d825785d196ffb294dd'] = '\'All\'ordine di\' e l\'indirizzo devono essere configurati per poter utilizzare questo modulo correttamente'; +$_MODULE['<{cheque}prestashop>cheque_e2d93539acef2afbbadf8542351fb2b4'] = 'Nessuna valuta impostata per questo modulo'; +$_MODULE['<{cheque}prestashop>cheque_94ce8bec7334b16916823f53ebe936d7'] = 'Il campo \"all\'ordine di\" è obbligatorio.'; +$_MODULE['<{cheque}prestashop>cheque_4b5e20a521d31cc44b9690bd35eaacfc'] = 'Indirizzo obbligatorio.'; +$_MODULE['<{cheque}prestashop>cheque_c888438d14855d7d96a2724ee9c306bd'] = 'Impostazioni aggiornate'; +$_MODULE['<{cheque}prestashop>cheque_aa646de3f8d345490b22b72d4a505dcd'] = 'Se il cliente sceglie questa modalitĂ  di pagamento, l\'ordine cambierĂ  il proprio status in \"attesa di pagamento\".'; +$_MODULE['<{cheque}prestashop>cheque_8c88bbf5712292b26e2a6bbeb0a7b5c4'] = 'Pertanto, sarĂ  necessario confermare l\'ordine non appena si riceve un assegno.'; +$_MODULE['<{cheque}prestashop>cheque_5dd532f0a63d89c5af0243b74732f63c'] = 'Dettagli di contatto'; +$_MODULE['<{cheque}prestashop>cheque_119100c9e7b17d9cfe7b1d6c64259a04'] = 'Si prega di specificare il nome e l\'indirizzo a cui i clienti dovranno inviare il loro assegno'; +$_MODULE['<{cheque}prestashop>cheque_75475839e69bef6ed57a8200a5a71d37'] = 'All\'ordine di'; +$_MODULE['<{cheque}prestashop>cheque_dd7bf230fde8d4836917806aff6a6b27'] = 'Indirizzo'; +$_MODULE['<{cheque}prestashop>cheque_b17f3f4dcf653a5776792498a9b44d6a'] = 'Aggiorna le impostazioni'; +$_MODULE['<{cheque}prestashop>validation_e2b7dec8fa4b498156dfee6e4c84b156'] = 'Questo metodo di pagamento non è disponibile.'; +$_MODULE['<{cheque}prestashop>payment_execution_8520b283b0884394b13b80d5689628b3'] = 'Pagamento con assegno'; +$_MODULE['<{cheque}prestashop>payment_execution_f1d3b424cd68795ecaa552883759aceb'] = 'Riepilogo dell\'ordine'; +$_MODULE['<{cheque}prestashop>payment_execution_060bf2d587991d8f090a1309b285291c'] = 'Assegno'; +$_MODULE['<{cheque}prestashop>payment_execution_76ca011e4772bfcce26aecd42c598510'] = 'Hai scelto di pagare con assegno.'; +$_MODULE['<{cheque}prestashop>payment_execution_c884ed19483d45970c5bf23a681e2dd2'] = 'Ecco un breve riepilogo del tuo ordine:'; +$_MODULE['<{cheque}prestashop>payment_execution_3b3b41f131194e747489ef93e778ed0d'] = 'L\'importo totale del tuo ordine è:'; +$_MODULE['<{cheque}prestashop>payment_execution_1f87346a16cf80c372065de3c54c86d9'] = '(tasse incl.)'; +$_MODULE['<{cheque}prestashop>payment_execution_7b1c6e78d93817f61f2b1bbc2108a803'] = 'Si accettano piĂą valute per gli assegni.'; +$_MODULE['<{cheque}prestashop>payment_execution_a7a08622ee5c8019b57354b99b7693b2'] = 'Scegli una delle seguenti:'; +$_MODULE['<{cheque}prestashop>payment_execution_f73ad0f08052884ff465749bf48b55ce'] = 'Accettiamo le seguente valuta da inviare tramite assegno:'; +$_MODULE['<{cheque}prestashop>payment_execution_7135ff14c7931e1c8e9d33aff3dfc7f7'] = 'Le informazioni sul titolare dell\'assegno e l\'indirizzo verranno visualizzate nella pagina successiva.'; +$_MODULE['<{cheque}prestashop>payment_execution_0881a11f7af33bc1b43e437391129d66'] = 'Conferma l\'ordine cliccando su \'confermo il mio ordine\''; +$_MODULE['<{cheque}prestashop>payment_execution_46b9e3665f187c739c55983f757ccda0'] = 'Confermo il mio ordine'; +$_MODULE['<{cheque}prestashop>payment_execution_569fd05bdafa1712c4f6be5b153b8418'] = 'Altri metodi di pagamento'; +$_MODULE['<{cheque}prestashop>payment_return_88526efe38fd18179a127024aba8c1d7'] = 'Il tuo ordine su %s è completo.'; +$_MODULE['<{cheque}prestashop>payment_return_61da27a5dd1f8ced46c77b0feaa9e159'] = 'Vi preghiamo di inviarci un assegno con:'; +$_MODULE['<{cheque}prestashop>payment_return_543baa3e0ca83589be12aff8036b5fe6'] = 'Importo pagamento.'; +$_MODULE['<{cheque}prestashop>payment_return_9b8f932b1412d130ece5045ecafd1b42'] = 'Pagabile all\'ordine di'; +$_MODULE['<{cheque}prestashop>payment_return_9a94f1d749a3de5d299674d6c685e416'] = 'Spedire a'; +$_MODULE['<{cheque}prestashop>payment_return_e1c54fdba2544646684f41ace03b5fda'] = 'Non dimenticare di inserire il tuo numero d\'ordine n.%d.'; +$_MODULE['<{cheque}prestashop>payment_return_4761b03b53bc2b3bd948bb7443a26f31'] = 'Non dimenticare di inserire il riferimento ordine %s.'; +$_MODULE['<{cheque}prestashop>payment_return_610abe74e72f00210e3dcb91a0a3f717'] = 'Ti è stata inviata una email con queste informazioni.'; +$_MODULE['<{cheque}prestashop>payment_return_ffd2478830ca2f519f7fe7ee259d4b96'] = 'Il tuo ordine verrĂ  inviato non appena avremo ricevuto il pagamento.'; +$_MODULE['<{cheque}prestashop>payment_return_0db71da7150c27142eef9d22b843b4a9'] = 'Per eventuali domande o per ulteriori informazioni, contatta la nostra'; +$_MODULE['<{cheque}prestashop>payment_return_decce112a9e64363c997b04aa71b7cb8'] = 'assistenza clienti.'; +$_MODULE['<{cheque}prestashop>payment_return_9bdf695c5a30784327137011da6ef568'] = 'Abbiamo notato un problema con il tuo ordine. Se pensi che questo sia un errore, contatta la nostra'; +$_MODULE['<{cheque}prestashop>payment_f05fd8637f8a6281466a507fcb56baec'] = 'Paga con assegno.'; +$_MODULE['<{cheque}prestashop>payment_841728ede901f5134574c4656aba5464'] = 'Paga con assegno (l\'elaborazione dell\'ordine sarĂ  piĂą lenta).'; diff --git a/themes/default-bootstrap/modules/crossselling/crossselling.tpl b/themes/default-bootstrap/modules/crossselling/crossselling.tpl new file mode 100644 index 000000000..84b91e45d --- /dev/null +++ b/themes/default-bootstrap/modules/crossselling/crossselling.tpl @@ -0,0 +1,44 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} +{if isset($orderProducts) && count($orderProducts)} +
      +

      {l s='Customers who bought this product also bought:' mod='crossselling'}

      +
      +
        + {foreach from=$orderProducts item='orderProduct' name=orderProduct} +
      • + {$orderProduct.name|htmlspecialchars} +

        {$orderProduct.name|truncate:15:'...'|escape:'htmlall':'UTF-8'}

        + {if $crossDisplayPrice AND $orderProduct.show_price == 1 AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE} +

        + {convertPrice price=$orderProduct.displayed_price} +

        + {/if} +
      • + {/foreach} +
      +
      +
      +{/if} diff --git a/themes/default-bootstrap/modules/favoriteproducts/views/templates/front/favoriteproducts-account.tpl b/themes/default-bootstrap/modules/favoriteproducts/views/templates/front/favoriteproducts-account.tpl index 9b36f785d..471bfec44 100644 --- a/themes/default-bootstrap/modules/favoriteproducts/views/templates/front/favoriteproducts-account.tpl +++ b/themes/default-bootstrap/modules/favoriteproducts/views/templates/front/favoriteproducts-account.tpl @@ -56,11 +56,11 @@ $('document').ready(function() {capture name=path} {l s='My account' mod='favoriteproducts'} - {$navigationPipe}{l s='My favorite products.' mod='favoriteproducts'} + {$navigationPipe}{l s='My favorite products' mod='favoriteproducts'} {/capture}
      -

      {l s='My favorite products.' mod='favoriteproducts'}

      +

      {l s='My favorite products' mod='favoriteproducts'}

      {if $favoriteProducts}
        {foreach from=$favoriteProducts item=favoriteProduct} diff --git a/themes/default-bootstrap/modules/favoriteproducts/views/templates/hook/my-account.tpl b/themes/default-bootstrap/modules/favoriteproducts/views/templates/hook/my-account.tpl index cdd09636d..f34592ade 100644 --- a/themes/default-bootstrap/modules/favoriteproducts/views/templates/hook/my-account.tpl +++ b/themes/default-bootstrap/modules/favoriteproducts/views/templates/hook/my-account.tpl @@ -24,5 +24,5 @@ *}
      • - {if !$in_footer}{l s='My favorite products.' mod='favoriteproducts'}{else}{l s='My favorite products.' mod='favoriteproducts'}{/if} + {if !$in_footer}{l s='My favorite products' mod='favoriteproducts'}{else}{l s='My favorite products' mod='favoriteproducts'}{/if}
      • diff --git a/themes/default-bootstrap/modules/homeslider/homeslider.tpl b/themes/default-bootstrap/modules/homeslider/homeslider.tpl index 2530d8c96..7d08c57f1 100644 --- a/themes/default-bootstrap/modules/homeslider/homeslider.tpl +++ b/themes/default-bootstrap/modules/homeslider/homeslider.tpl @@ -41,13 +41,13 @@ var homeslider_pause = {$homeslider.pause}; {/if} {if isset($homeslider_slides)} -
        +
          {foreach from=$homeslider_slides item=slide} {if $slide.active}
        • - {$slide.legend|escape:'htmlall':'UTF-8'} + {$slide.legend|escape:'htmlall':'UTF-8'}
        • {/if} diff --git a/themes/default-bootstrap/modules/productcomments/productcomments-extra.tpl b/themes/default-bootstrap/modules/productcomments/productcomments-extra.tpl index 13b4f281a..e2dccb5cf 100644 --- a/themes/default-bootstrap/modules/productcomments/productcomments-extra.tpl +++ b/themes/default-bootstrap/modules/productcomments/productcomments-extra.tpl @@ -35,7 +35,7 @@ $(function(){ }); -{if $logged == 1 || $nbComments != 0} +{if ($logged == 1 || $nbComments != 0) && !$content_only}
        {if $nbComments != 0} diff --git a/themes/default-bootstrap/modules/productscategory/productscategory.tpl b/themes/default-bootstrap/modules/productscategory/productscategory.tpl index 2065ce90c..34bac3165 100644 --- a/themes/default-bootstrap/modules/productscategory/productscategory.tpl +++ b/themes/default-bootstrap/modules/productscategory/productscategory.tpl @@ -22,57 +22,30 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} - {if count($categoryProducts) > 0 && $categoryProducts !== false} -
        +

        {$categoryProducts|@count} {l s='other products in the same category:' mod='productscategory'}

        -
        -
        - - +
      -
    - -{/if} - - - \ No newline at end of file +{/if} \ No newline at end of file diff --git a/themes/default-bootstrap/modules/stripejs/payment.tpl b/themes/default-bootstrap/modules/stripejs/payment.tpl index 1bd925afc..b0dc4ac75 100644 --- a/themes/default-bootstrap/modules/stripejs/payment.tpl +++ b/themes/default-bootstrap/modules/stripejs/payment.tpl @@ -97,10 +97,9 @@
    {if isset($stripe_save_tokens_ask)} -
    -
    {$server.id_memcached_server}{$server.ip}{$server.port}{$server.weight} + {l s='Remove'} +
    {/if}
    @@ -132,18 +130,19 @@ {block name="script"} - function showMemcached() - { - if ($('input[name="caching_system"]:radio:checked').val() == 'CacheMemcache') - { + function showMemcached() { + if ($('input[name="caching_system"]:radio:checked').val() == 'CacheMemcache') { $('#memcachedServers').show(); $('#ps_cache_fs_directory_depth').parent().parent().hide(); } - else - { + else if ($('input[name="caching_system"]:radio:checked').val() == 'CacheFs') { $('#memcachedServers').hide(); $('#ps_cache_fs_directory_depth').parent().parent().show(); } + else { + $('#memcachedServers').hide(); + $('#ps_cache_fs_directory_depth').parent().parent().hide(); + } } $(document).ready(function() { diff --git a/admin-dev/themes/default/template/helpers/form/assoshop.tpl b/admin-dev/themes/default/template/helpers/form/assoshop.tpl index fc76148fb..b9fe8eff4 100644 --- a/admin-dev/themes/default/template/helpers/form/assoshop.tpl +++ b/admin-dev/themes/default/template/helpers/form/assoshop.tpl @@ -74,13 +74,15 @@ function check_all_shop() {
    - +
    {foreach $input.values as $groupID => $groupData} @@ -88,13 +90,13 @@ function check_all_shop() { diff --git a/controllers/admin/AdminPerformanceController.php b/controllers/admin/AdminPerformanceController.php index 7da93a542..4eb588566 100644 --- a/controllers/admin/AdminPerformanceController.php +++ b/controllers/admin/AdminPerformanceController.php @@ -136,7 +136,7 @@ class AdminPerformanceControllerCore extends AdminController 'title' => $this->l('Optional features'), 'icon' => 'icon-puzzle-piece' ), - 'hint' => $this->l('Some features can be disabled in order to improve performance.'), + 'description' => $this->l('Some features can be disabled in order to improve performance.'), 'input' => array( array( 'type' => 'hidden', @@ -195,7 +195,7 @@ class AdminPerformanceControllerCore extends AdminController 'title' => $this->l('CCC (Combine, Compress and Cache)'), 'icon' => 'icon-fullscreen' ), - 'hint' => $this->l('CCC allows you to reduce the loading time of your page. With these settings you will gain performance without even touching the code of your theme. Make sure, however, that your theme is compatible with PrestaShop 1.4+. Otherwise, CCC will cause problems.'), + 'description' => $this->l('CCC allows you to reduce the loading time of your page. With these settings you will gain performance without even touching the code of your theme. Make sure, however, that your theme is compatible with PrestaShop 1.4+. Otherwise, CCC will cause problems.'), 'input' => array( array( 'type' => 'hidden', @@ -305,7 +305,7 @@ class AdminPerformanceControllerCore extends AdminController 'title' => $this->l('Media servers (use only with CCC)'), 'icon' => 'icon-link' ), - 'hint' => $this->l('You must enter another domain, or subdomain, in order to use cookieless static content.'), + 'description' => $this->l('You must enter another domain, or subdomain, in order to use cookieless static content.'), 'input' => array( array( 'type' => 'hidden', From 3c1cdf4ef2ad277bee3ed9ff3378c891e2c6fe7d Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 31 Oct 2013 16:08:57 +0100 Subject: [PATCH 189/247] // Fixed new arrivals issue --- modules/blocknewproducts/blocknewproducts.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/blocknewproducts/blocknewproducts.php b/modules/blocknewproducts/blocknewproducts.php index 844c5d6e3..0724a31a0 100644 --- a/modules/blocknewproducts/blocknewproducts.php +++ b/modules/blocknewproducts/blocknewproducts.php @@ -89,12 +89,13 @@ class BlockNewProducts extends Module { if (!$this->isCached('blocknewproducts.tpl', $this->getCacheId())) { - if (!Configuration::get('PS_BLOCK_NEWPRODUCTS_DISPLAY')) - return; - $newProducts = Product::getNewProducts((int) $params['cookie']->id_lang, 0, (int) Configuration::get('NEW_PRODUCTS_NBR')); - if (!$newProducts) - return; - + if (!Configuration::get('NEW_PRODUCTS_NBR')) + return; + $newProducts = false; + if (Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) + $newProducts = Product::getNewProducts((int) $params['cookie']->id_lang, 0, (int)Configuration::get('NEW_PRODUCTS_NBR')); + if (!$newProducts && !Configuration::get('PS_BLOCK_NEWPRODUCTS_DISPLAY')) + return; $this->smarty->assign(array( 'new_products' => $newProducts, 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), From 80c60be9520c2187fdd88283af28aea35d9c2e4d Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 31 Oct 2013 16:20:55 +0100 Subject: [PATCH 190/247] [-] BO : Do not enable rewrite url for index --- controllers/admin/AdminMetaController.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/controllers/admin/AdminMetaController.php b/controllers/admin/AdminMetaController.php index 0d0bb10be..e0e59cafc 100644 --- a/controllers/admin/AdminMetaController.php +++ b/controllers/admin/AdminMetaController.php @@ -227,6 +227,12 @@ class AdminMetaControllerCore extends AdminController public function renderForm() { $files = Meta::getPages(true, ($this->object->page ? $this->object->page : false)); + + $is_index = false; + foreach ($this->object->url_rewrite as $rewrite) + if($is_index != true) + $is_index = ($this->object->page == 'index' && empty($rewrite)) ? true : false; + $pages = array( 'common' => array( 'name' => $this->l('Default pages'), @@ -310,6 +316,7 @@ class AdminMetaControllerCore extends AdminController 'name' => 'url_rewrite', 'lang' => true, 'required' => true, + 'disabled' => (bool)$is_index, 'hint' => $this->l('Only letters and hyphens are allowed'), 'desc' => $this->l('e.g. "contacts" for http://mysite.com/shop/contacts to redirect to http://mysite.com/shop/contact-form.php'), 'size' => 50 From a7ed5ee8692552dc7bfb7ebe50337af109211051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 31 Oct 2013 16:39:01 +0100 Subject: [PATCH 191/247] // cleaning --- modules/addsharethis/addsharethis.php | 216 ++++++++++++++------------ 1 file changed, 117 insertions(+), 99 deletions(-) diff --git a/modules/addsharethis/addsharethis.php b/modules/addsharethis/addsharethis.php index cd0637d70..825d3e1c9 100644 --- a/modules/addsharethis/addsharethis.php +++ b/modules/addsharethis/addsharethis.php @@ -1,10 +1,35 @@ +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +if (!defined('_PS_VERSION_')) exit; -} + class AddShareThis extends Module { - function __construct() + public function __construct() { $this->name = 'addsharethis'; $this->author = 'Custom'; @@ -14,49 +39,45 @@ class AddShareThis extends Module parent::__construct(); $this->displayName = $this->l('Add Sharethis'); $this->description = $this->l('Display social count button on the home page'); -} + } -public function install() + public function install() { - Configuration::updateValue('CONF_ROW', 'ea22d519-9f98-4018-99a9-5b5f1b100fa8'); - Configuration::updateValue('ADDTHISSHARE_TWITTER',1); - Configuration::updateValue('ADDTHISSHARE_GOOGLE',1); - Configuration::updateValue('ADDTHISSHARE_PINTEREST',1); - Configuration::updateValue('ADDTHISSHARE_FACEBOOK',1); - if (!parent::install() OR - - !$this->registerHook('Extraright') OR - !$this->registerHook('header')) - return false; - return true; -} + return ( + parent::install() && + $this->registerHook('Extraright') && + $this->registerHook('header') && + Configuration::updateValue('CONF_ROW', 'ea22d519-9f98-4018-99a9-5b5f1b100fa8') && + Configuration::updateValue('ADDTHISSHARE_TWITTER', 1) && + Configuration::updateValue('ADDTHISSHARE_GOOGLE', 1) && + Configuration::updateValue('ADDTHISSHARE_PINTEREST', 1) && + Configuration::updateValue('ADDTHISSHARE_FACEBOOK', 1) + ); + } -public function uninstall() - { - if (!parent::uninstall() OR - !Configuration::deleteByName('CONF_ROW') OR - !Configuration::deleteByName('ADDTHISSHARE_TWITTER') OR - !Configuration::deleteByName('ADDTHISSHARE_GOOGLE') OR - !Configuration::deleteByName('ADDTHISSHARE_PINTEREST') OR - !Configuration::deleteByName('ADDTHISSHARE_FACEBOOK') OR - !$this->unregisterHook('Extraright') OR - !$this->unregisterHook('header')) - return false; - else return true; -} - -public function getContent() - { + public function uninstall() + { + return ( + parent::uninstall() && + Configuration::deleteByName('CONF_ROW') && + Configuration::deleteByName('ADDTHISSHARE_TWITTER') && + Configuration::deleteByName('ADDTHISSHARE_GOOGLE') && + Configuration::deleteByName('ADDTHISSHARE_PINTEREST') && + Configuration::deleteByName('ADDTHISSHARE_FACEBOOK') && + $this->unregisterHook('Extraright') && + $this->unregisterHook('header') + ); + } + public function getContent() + { $this->_html .= '

    '.$this->displayName.'

    '; - if (isset($_POST['submitCog'])) $this->updateCog(); - if (Tools::isSubmit('submitCog')) { - $conf_row = Tools::getValue('conf_row'); - Configuration::updateValue('CONF_ROW', $conf_row); - - } + $this->updateCog(); + Configuration::updateValue('CONF_ROW', Tools::getValue('conf_row')); + } + $this->_html .= '
    '.$this->l('Configuration').' @@ -66,23 +87,23 @@ public function getContent()


    - +


    - - + +
    - - + +
    - - + +
    - - + +


    @@ -93,96 +114,93 @@ public function getContent() return $this->_html; } -public function updateCog() + public function updateCog() { - Configuration::updateValue('ADDTHISSHARE_TWITTER', (isset($_POST['Twitter']) ? 1 : 0)); - Configuration::updateValue('ADDTHISSHARE_GOOGLE', (isset($_POST['Google']) ? 1 : 0)); - Configuration::updateValue('ADDTHISSHARE_PINTEREST', (isset($_POST['Pinterest']) ? 1 : 0)); - Configuration::updateValue('ADDTHISSHARE_FACEBOOK', (isset($_POST['Facebook']) ? 1 : 0)); - + Configuration::updateValue('ADDTHISSHARE_TWITTER', (int)Tools::getValue('Twitter')); + Configuration::updateValue('ADDTHISSHARE_GOOGLE', (int)Tools::getValue('Google')); + Configuration::updateValue('ADDTHISSHARE_PINTEREST', (int)Tools::getValue('Pinterest')); + Configuration::updateValue('ADDTHISSHARE_FACEBOOK', (int)Tools::getValue('Facebook')); } - -function hookDisplayHeader($params) + public function hookDisplayHeader($params) { - global $smarty, $cookie; - global $link; - $product = new Product((int)Tools::getValue('id_product'), false, (int)$cookie->id_lang); - $productLink = $link->getProductLink($product); - $images = $product->getImages((int)$cookie->id_lang); + $id_lang = (int)$this->context->language->id; + $product = new Product((int)Tools::getValue('id_product'), false, $id_lang); + $productLink = $this->context->link->getProductLink($product); + $images = $product->getImages((int)$id_lang); + foreach ($images AS $k => $image) if ($image['cover']) { $cover['id_image'] = (int)$product->id.'-'.(int)$image['id_image']; $cover['legend'] = $image['legend']; + break; } + if (!isset($cover)) - $cover = array('id_image' => Language::getIsoById((int)$cookie->id_lang).'-default', 'legend' => 'No picture'); - $this->context->smarty->assign(array( + $cover = array('id_image' => Language::getIsoById((int)$id_lang).'-default', 'legend' => 'No picture'); + + $this->context->smarty->assign(array( 'cover' => $cover, 'product' => $product, 'productLink' => $productLink, 'this_path' => $this->_path - )); + ) + ); + return $this->display(__FILE__, 'addsharethis_header.tpl'); } - -public function hookExtraRight($params) + + public function hookExtraRight($params) { - global $smarty, $cookie, $link; - - $conf_row = Configuration::get('CONF_ROW'); - $this->context->smarty->assign(array( - 'conf_row' => $conf_row, - )); - - if (Configuration::get('ADDTHISSHARE_TWITTER') == 1) + if (Configuration::get('ADDTHISSHARE_TWITTER')) $data['twitter'] = ''; - if (Configuration::get('ADDTHISSHARE_GOOGLE') == 1) - { + + if (Configuration::get('ADDTHISSHARE_GOOGLE')) $data['google'] = ''; - } - if (Configuration::get('ADDTHISSHARE_PINTEREST') == 1) + + if (Configuration::get('ADDTHISSHARE_PINTEREST')) $data['pinterest'] = ''; - if (Configuration::get('ADDTHISSHARE_FACEBOOK') == 1) + if (Configuration::get('ADDTHISSHARE_FACEBOOK')) $data['facebook'] = ''; - - $smarty->assign('addsharethis_data', $data); - - + $this->context->smarty->assign(array( + 'addsharethis_data' => $data, + 'conf_row' => Configuration::get('CONF_ROW') + ) + ); + return $this->display(__FILE__, 'addsharethis.tpl'); - } + } - function hookLeftColumn($params) + public function hookLeftColumn($params) { - return $this->hookExtraRight($params); + return $this->hookExtraRight($params); } - function hookFooter($params) + public function hookFooter($params) { - return $this->hookExtraRight($params); + return $this->hookExtraRight($params); } - function hookHome($params) + public function hookHome($params) { - return $this->hookExtraRight($params); + return $this->hookExtraRight($params); } - function hookExtraleft($params) + public function hookExtraleft($params) { - return $this->hookExtraRight($params); + return $this->hookExtraRight($params); } - function hookProductActions($params) + + public function hookProductActions($params) { - return $this->hookExtraRight($params); + return $this->hookExtraRight($params); } - function hookProductFooter($params) + public function hookProductFooter($params) { - return $this->hookExtraRight($params); + return $this->hookExtraRight($params); } - -} -?> \ No newline at end of file +} \ No newline at end of file From c091729fd7e65b948a3df650b83d177cd8c50f18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 31 Oct 2013 17:03:41 +0100 Subject: [PATCH 192/247] // missing directory --- img/e/index.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 img/e/index.php diff --git a/img/e/index.php b/img/e/index.php new file mode 100644 index 000000000..195fab225 --- /dev/null +++ b/img/e/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; From fe78dceede258ea5c5e43150bb064df12b787d79 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 31 Oct 2013 17:08:11 +0100 Subject: [PATCH 193/247] // Fixed image sizes --- install-dev/data/xml/image_type.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install-dev/data/xml/image_type.xml b/install-dev/data/xml/image_type.xml index 7480ae8e3..ad8fe3c6c 100644 --- a/install-dev/data/xml/image_type.xml +++ b/install-dev/data/xml/image_type.xml @@ -13,11 +13,11 @@ - - - + + + + - From 23e4e1badb854c39f072635f7db046ea0d861c87 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 31 Oct 2013 17:10:15 +0100 Subject: [PATCH 194/247] // I forgot the link --- themes/default-bootstrap/breadcrumb.tpl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/default-bootstrap/breadcrumb.tpl b/themes/default-bootstrap/breadcrumb.tpl index eb1e4b4de..944ea43c5 100644 --- a/themes/default-bootstrap/breadcrumb.tpl +++ b/themes/default-bootstrap/breadcrumb.tpl @@ -38,7 +38,11 @@
    {if isset($smarty.get.search_query) && isset($smarty.get.results) && $smarty.get.results > 1}
    - {l s='Back to Search results for "%s" (%d other results)' sprintf=[$smarty.get.search_query,$smarty.get.results]} + + + {l s='Back to Search results for "%s" (%d other results)' sprintf=[$smarty.get.search_query,$smarty.get.results]} + +
    {/if} \ No newline at end of file From 343c9578da63525eb29334e247a03e3ca97fe56b Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 31 Oct 2013 17:15:30 +0100 Subject: [PATCH 195/247] // Better --- themes/default-bootstrap/breadcrumb.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/default-bootstrap/breadcrumb.tpl b/themes/default-bootstrap/breadcrumb.tpl index 944ea43c5..1af5129cd 100644 --- a/themes/default-bootstrap/breadcrumb.tpl +++ b/themes/default-bootstrap/breadcrumb.tpl @@ -39,7 +39,7 @@ {if isset($smarty.get.search_query) && isset($smarty.get.results) && $smarty.get.results > 1}
    - + {l s='Back to Search results for "%s" (%d other results)' sprintf=[$smarty.get.search_query,$smarty.get.results]} From 8670db2316b07beb75d8259575d16371c2f6e59e Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 31 Oct 2013 17:41:02 +0100 Subject: [PATCH 196/247] // Image sizes --- install-dev/data/xml/image_type.xml | 3 ++- themes/default-bootstrap/breadcrumb.tpl | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/install-dev/data/xml/image_type.xml b/install-dev/data/xml/image_type.xml index ad8fe3c6c..aca196f03 100644 --- a/install-dev/data/xml/image_type.xml +++ b/install-dev/data/xml/image_type.xml @@ -12,7 +12,8 @@ - + + diff --git a/themes/default-bootstrap/breadcrumb.tpl b/themes/default-bootstrap/breadcrumb.tpl index 1af5129cd..714337376 100644 --- a/themes/default-bootstrap/breadcrumb.tpl +++ b/themes/default-bootstrap/breadcrumb.tpl @@ -36,7 +36,7 @@ {/if} {/if}
    -{if isset($smarty.get.search_query) && isset($smarty.get.results) && $smarty.get.results > 1} +{if isset($smarty.get.search_query) && isset($smarty.get.results) && $smarty.get.results > 1 && isset($smarty.server.HTTP_REFERER)}
    From 1ecc6e32baa2f4256873e516596308ad7b8ea9de Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 31 Oct 2013 17:45:02 +0100 Subject: [PATCH 197/247] // Try out new PEAR JSON encode --- tools/json/json.php | 225 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 177 insertions(+), 48 deletions(-) diff --git a/tools/json/json.php b/tools/json/json.php index 811e858f0..fc02f2a5b 100644 --- a/tools/json/json.php +++ b/tools/json/json.php @@ -1,6 +1,5 @@ * @author Brett Stimmerman * @copyright 2005 Michal Migurski - * @version CVS: $Id: json.php 6844 2011-06-03 14:46:51Z dMetzger $ + * @version CVS: $Id: JSON.php 305040 2010-11-02 23:19:03Z alan_k $ * @license http://www.opensource.org/licenses/bsd-license.php * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 */ @@ -91,6 +90,11 @@ define('SERVICES_JSON_LOOSE_TYPE', 16); */ define('SERVICES_JSON_SUPPRESS_ERRORS', 32); +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_USE_TO_JSON', 64); + /** * Converts to and from JSON format. * @@ -129,12 +133,24 @@ class Services_JSON * By default, a deeply-nested resource will * bubble up with an error, so all return values * from encode() should be checked with isError() + * - SERVICES_JSON_USE_TO_JSON: call toJSON when serializing objects + * It serializes the return value from the toJSON call rather + * than the object it'self, toJSON can return associative arrays, + * strings or numbers, if you return an object, make sure it does + * not have a toJSON method, otherwise an error will occur. */ - function __construct($use = 0) + function Services_JSON($use = 0) { $this->use = $use; + $this->_mb_strlen = function_exists('mb_strlen'); + $this->_mb_convert_encoding = function_exists('mb_convert_encoding'); + $this->_mb_substr = function_exists('mb_substr'); } - + // private - cache the mbstring lookup results.. + var $_mb_strlen = false; + var $_mb_substr = false; + var $_mb_convert_encoding = false; + /** * convert a string from one UTF-16 char to one UTF-8 char * @@ -149,7 +165,7 @@ class Services_JSON function utf162utf8($utf16) { // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { + if($this->_mb_convert_encoding) { return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); } @@ -193,11 +209,11 @@ class Services_JSON function utf82utf16($utf8) { // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) { + if($this->_mb_convert_encoding) { return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); } - switch(strlen($utf8)) { + switch($this->strlen8($utf8)) { case 1: // this case should never be reached, because we are in ASCII range // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 @@ -224,7 +240,7 @@ class Services_JSON } /** - * encodes an arbitrary variable into JSON format + * encodes an arbitrary variable into JSON format (and sends JSON Header) * * @param mixed $var any number, boolean, string, array, or object to be encoded. * see argument 1 to Services_JSON() above for array-parsing behavior. @@ -236,6 +252,44 @@ class Services_JSON */ function encode($var) { + header('Content-type: application/json'); + return $this->encodeUnsafe($var); + } + /** + * encodes an arbitrary variable into JSON format without JSON Header - warning - may allow XSS!!!!) + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encodeUnsafe($var) + { + // see bug #16908 - regarding numeric locale printing + $lc = setlocale(LC_NUMERIC, 0); + setlocale(LC_NUMERIC, 'C'); + $ret = $this->_encode($var); + setlocale(LC_NUMERIC, $lc); + return $ret; + + } + /** + * PRIVATE CODE that does the work of encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function _encode($var) + { + switch (gettype($var)) { case 'boolean': return $var ? 'true' : 'false'; @@ -248,12 +302,12 @@ class Services_JSON case 'double': case 'float': - return (float) $var; + return (float) $var; case 'string': // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT $ascii = ''; - $strlen_var = strlen($var); + $strlen_var = $this->strlen8($var); /* * Iterate over every character in the string, @@ -295,6 +349,12 @@ class Services_JSON case (($ord_var_c & 0xE0) == 0xC0): // characters U-00000080 - U-000007FF, mask 110XXXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + if ($c+1 >= $strlen_var) { + $c += 1; + $ascii .= '?'; + break; + } + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); $c += 1; $utf16 = $this->utf82utf16($char); @@ -302,17 +362,27 @@ class Services_JSON break; case (($ord_var_c & 0xF0) == 0xE0): + if ($c+2 >= $strlen_var) { + $c += 2; + $ascii .= '?'; + break; + } // characters U-00000800 - U-0000FFFF, mask 1110XXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2})); + @ord($var{$c + 1}), + @ord($var{$c + 2})); $c += 2; $utf16 = $this->utf82utf16($char); $ascii .= sprintf('\u%04s', bin2hex($utf16)); break; case (($ord_var_c & 0xF8) == 0xF0): + if ($c+3 >= $strlen_var) { + $c += 3; + $ascii .= '?'; + break; + } // characters U-00010000 - U-001FFFFF, mask 11110XXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 $char = pack('C*', $ord_var_c, @@ -327,6 +397,11 @@ class Services_JSON case (($ord_var_c & 0xFC) == 0xF8): // characters U-00200000 - U-03FFFFFF, mask 111110XX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + if ($c+4 >= $strlen_var) { + $c += 4; + $ascii .= '?'; + break; + } $char = pack('C*', $ord_var_c, ord($var{$c + 1}), ord($var{$c + 2}), @@ -338,6 +413,11 @@ class Services_JSON break; case (($ord_var_c & 0xFE) == 0xFC): + if ($c+5 >= $strlen_var) { + $c += 5; + $ascii .= '?'; + break; + } // characters U-04000000 - U-7FFFFFFF, mask 1111110X // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 $char = pack('C*', $ord_var_c, @@ -352,8 +432,7 @@ class Services_JSON break; } } - - return '"'.$ascii.'"'; + return '"'.$ascii.'"'; case 'array': /* @@ -390,7 +469,7 @@ class Services_JSON } // treat it like a regular array - $elements = array_map(array($this, 'encode'), $var); + $elements = array_map(array($this, '_encode'), $var); foreach($elements as $element) { if(Services_JSON::isError($element)) { @@ -401,8 +480,27 @@ class Services_JSON return '[' . join(',', $elements) . ']'; case 'object': + + // support toJSON methods. + if (($this->use & SERVICES_JSON_USE_TO_JSON) && method_exists($var, 'toJSON')) { + // this may end up allowing unlimited recursion + // so we check the return value to make sure it's not got the same method. + $recode = $var->toJSON(); + + if (method_exists($recode, 'toJSON')) { + + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(class_name($var). + " toJSON returned an object with a toJSON method."); + + } + + return $this->_encode( $recode ); + } + $vars = get_object_vars($var); - + $properties = array_map(array($this, 'name_value'), array_keys($vars), array_values($vars)); @@ -433,13 +531,13 @@ class Services_JSON */ function name_value($name, $value) { - $encoded_value = $this->encode($value); + $encoded_value = $this->_encode($value); if(Services_JSON::isError($encoded_value)) { return $encoded_value; } - return $this->encode(strval($name)) . ':' . $encoded_value; + return $this->_encode(strval($name)) . ':' . $encoded_value; } /** @@ -512,14 +610,14 @@ class Services_JSON } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { // STRINGS RETURNED IN UTF-8 FORMAT - $delim = substr($str, 0, 1); - $chrs = substr($str, 1, -1); + $delim = $this->substr8($str, 0, 1); + $chrs = $this->substr8($str, 1, -1); $utf8 = ''; - $strlen_chrs = strlen($chrs); + $strlen_chrs = $this->strlen8($chrs); for ($c = 0; $c < $strlen_chrs; ++$c) { - $substr_chrs_c_2 = substr($chrs, $c, 2); + $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); $ord_chrs_c = ord($chrs{$c}); switch (true) { @@ -554,10 +652,10 @@ class Services_JSON } break; - case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): + case preg_match('/\\\u[0-9A-F]{4}/i', $this->substr8($chrs, $c, 6)): // single, escaped unicode character - $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) - . chr(hexdec(substr($chrs, ($c + 4), 2))); + $utf16 = chr(hexdec($this->substr8($chrs, ($c + 2), 2))) + . chr(hexdec($this->substr8($chrs, ($c + 4), 2))); $utf8 .= $this->utf162utf8($utf16); $c += 5; break; @@ -569,35 +667,35 @@ class Services_JSON case ($ord_chrs_c & 0xE0) == 0xC0: // characters U-00000080 - U-000007FF, mask 110XXXXX //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 2); + $utf8 .= $this->substr8($chrs, $c, 2); ++$c; break; case ($ord_chrs_c & 0xF0) == 0xE0: // characters U-00000800 - U-0000FFFF, mask 1110XXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 3); + $utf8 .= $this->substr8($chrs, $c, 3); $c += 2; break; case ($ord_chrs_c & 0xF8) == 0xF0: // characters U-00010000 - U-001FFFFF, mask 11110XXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 4); + $utf8 .= $this->substr8($chrs, $c, 4); $c += 3; break; case ($ord_chrs_c & 0xFC) == 0xF8: // characters U-00200000 - U-03FFFFFF, mask 111110XX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 5); + $utf8 .= $this->substr8($chrs, $c, 5); $c += 4; break; case ($ord_chrs_c & 0xFE) == 0xFC: // characters U-04000000 - U-7FFFFFFF, mask 1111110X // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 6); + $utf8 .= $this->substr8($chrs, $c, 6); $c += 5; break; @@ -627,7 +725,7 @@ class Services_JSON 'where' => 0, 'delim' => false)); - $chrs = substr($str, 1, -1); + $chrs = $this->substr8($str, 1, -1); $chrs = $this->reduce_string($chrs); if ($chrs == '') { @@ -642,19 +740,19 @@ class Services_JSON //print("\nparsing {$chrs}\n"); - $strlen_chrs = strlen($chrs); + $strlen_chrs = $this->strlen8($chrs); for ($c = 0; $c <= $strlen_chrs; ++$c) { $top = end($stk); - $substr_chrs_c_2 = substr($chrs, $c, 2); + $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { // found a comma that is not inside a string, array, etc., // OR we've reached the end of the character list - $slice = substr($chrs, $top['where'], ($c - $top['where'])); + $slice = $this->substr8($chrs, $top['where'], ($c - $top['where'])); array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); - //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found split at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); if (reset($stk) == SERVICES_JSON_IN_ARR) { // we are in an array, so just push an element onto the stack @@ -667,20 +765,19 @@ class Services_JSON // for now $parts = array(); - if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { - // "name":value pair + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:/Uis', $slice, $parts)) { + // "name":value pair $key = $this->decode($parts[1]); - $val = $this->decode($parts[2]); - + $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); if ($this->use & SERVICES_JSON_LOOSE_TYPE) { $obj[$key] = $val; } else { $obj->$key = $val; } - } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + } elseif (preg_match('/^\s*(\w+)\s*:/Uis', $slice, $parts)) { // name:value pair, where name is unquoted $key = $parts[1]; - $val = $this->decode($parts[2]); + $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); if ($this->use & SERVICES_JSON_LOOSE_TYPE) { $obj[$key] = $val; @@ -698,12 +795,12 @@ class Services_JSON } elseif (($chrs{$c} == $top['delim']) && ($top['what'] == SERVICES_JSON_IN_STR) && - ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { + (($this->strlen8($this->substr8($chrs, 0, $c)) - $this->strlen8(rtrim($this->substr8($chrs, 0, $c), '\\'))) % 2 != 1)) { // found a quote, we're in a string, and it's not escaped // we know that it's not escaped becase there is _not_ an // odd number of backslashes at the end of the string so far array_pop($stk); - //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + //print("Found end of string at {$c}: ".$this->substr8($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); } elseif (($chrs{$c} == '[') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { @@ -714,7 +811,7 @@ class Services_JSON } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { // found a right-bracket, and we're in an array array_pop($stk); - //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found end of array at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); } elseif (($chrs{$c} == '{') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { @@ -725,7 +822,7 @@ class Services_JSON } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { // found a right-brace, and we're in an object array_pop($stk); - //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found end of object at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); } elseif (($substr_chrs_c_2 == '/*') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { @@ -742,7 +839,7 @@ class Services_JSON for ($i = $top['where']; $i <= $c; ++$i) $chrs = substr_replace($chrs, ' ', $i, 1); - //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found end of comment at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); } @@ -774,6 +871,38 @@ class Services_JSON return false; } + + /** + * Calculates length of string in bytes + * @param string + * @return integer length + */ + function strlen8( $str ) + { + if ( $this->_mb_strlen ) { + return mb_strlen( $str, "8bit" ); + } + return strlen( $str ); + } + + /** + * Returns part of a string, interpreting $start and $length as number of bytes. + * @param string + * @param integer start + * @param integer length + * @return integer length + */ + function substr8( $string, $start, $length=false ) + { + if ( $length === false ) { + $length = $this->strlen8( $string ) - $start; + } + if ( $this->_mb_substr ) { + return mb_substr( $string, $start, $length, "8bit" ); + } + return substr( $string, $start, $length ); + } + } if (class_exists('PEAR_Error')) { @@ -800,5 +929,5 @@ if (class_exists('PEAR_Error')) { } } - -} \ No newline at end of file + +} From 3669948547bb2e4a70cf41d6d7369c5cf7de31cd Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Thu, 31 Oct 2013 17:53:34 +0100 Subject: [PATCH 198/247] // Revert to the previous lib with a trick --- tools/json/json.php | 227 ++++++++++---------------------------------- 1 file changed, 49 insertions(+), 178 deletions(-) diff --git a/tools/json/json.php b/tools/json/json.php index fc02f2a5b..0f31d8c0d 100644 --- a/tools/json/json.php +++ b/tools/json/json.php @@ -1,5 +1,6 @@ * @author Brett Stimmerman * @copyright 2005 Michal Migurski - * @version CVS: $Id: JSON.php 305040 2010-11-02 23:19:03Z alan_k $ + * @version CVS: $Id: json.php 6844 2011-06-03 14:46:51Z dMetzger $ * @license http://www.opensource.org/licenses/bsd-license.php * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 */ @@ -90,11 +91,6 @@ define('SERVICES_JSON_LOOSE_TYPE', 16); */ define('SERVICES_JSON_SUPPRESS_ERRORS', 32); -/** - * Behavior switch for Services_JSON::decode() - */ -define('SERVICES_JSON_USE_TO_JSON', 64); - /** * Converts to and from JSON format. * @@ -133,24 +129,12 @@ class Services_JSON * By default, a deeply-nested resource will * bubble up with an error, so all return values * from encode() should be checked with isError() - * - SERVICES_JSON_USE_TO_JSON: call toJSON when serializing objects - * It serializes the return value from the toJSON call rather - * than the object it'self, toJSON can return associative arrays, - * strings or numbers, if you return an object, make sure it does - * not have a toJSON method, otherwise an error will occur. */ - function Services_JSON($use = 0) + function __construct($use = 0) { $this->use = $use; - $this->_mb_strlen = function_exists('mb_strlen'); - $this->_mb_convert_encoding = function_exists('mb_convert_encoding'); - $this->_mb_substr = function_exists('mb_substr'); } - // private - cache the mbstring lookup results.. - var $_mb_strlen = false; - var $_mb_substr = false; - var $_mb_convert_encoding = false; - + /** * convert a string from one UTF-16 char to one UTF-8 char * @@ -165,7 +149,7 @@ class Services_JSON function utf162utf8($utf16) { // oh please oh please oh please oh please oh please - if($this->_mb_convert_encoding) { + if(function_exists('mb_convert_encoding')) { return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); } @@ -209,11 +193,11 @@ class Services_JSON function utf82utf16($utf8) { // oh please oh please oh please oh please oh please - if($this->_mb_convert_encoding) { + if(function_exists('mb_convert_encoding')) { return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); } - switch($this->strlen8($utf8)) { + switch(strlen($utf8)) { case 1: // this case should never be reached, because we are in ASCII range // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 @@ -240,7 +224,7 @@ class Services_JSON } /** - * encodes an arbitrary variable into JSON format (and sends JSON Header) + * encodes an arbitrary variable into JSON format * * @param mixed $var any number, boolean, string, array, or object to be encoded. * see argument 1 to Services_JSON() above for array-parsing behavior. @@ -252,44 +236,6 @@ class Services_JSON */ function encode($var) { - header('Content-type: application/json'); - return $this->encodeUnsafe($var); - } - /** - * encodes an arbitrary variable into JSON format without JSON Header - warning - may allow XSS!!!!) - * - * @param mixed $var any number, boolean, string, array, or object to be encoded. - * see argument 1 to Services_JSON() above for array-parsing behavior. - * if var is a strng, note that encode() always expects it - * to be in ASCII or UTF-8 format! - * - * @return mixed JSON string representation of input var or an error if a problem occurs - * @access public - */ - function encodeUnsafe($var) - { - // see bug #16908 - regarding numeric locale printing - $lc = setlocale(LC_NUMERIC, 0); - setlocale(LC_NUMERIC, 'C'); - $ret = $this->_encode($var); - setlocale(LC_NUMERIC, $lc); - return $ret; - - } - /** - * PRIVATE CODE that does the work of encodes an arbitrary variable into JSON format - * - * @param mixed $var any number, boolean, string, array, or object to be encoded. - * see argument 1 to Services_JSON() above for array-parsing behavior. - * if var is a strng, note that encode() always expects it - * to be in ASCII or UTF-8 format! - * - * @return mixed JSON string representation of input var or an error if a problem occurs - * @access public - */ - function _encode($var) - { - switch (gettype($var)) { case 'boolean': return $var ? 'true' : 'false'; @@ -302,12 +248,12 @@ class Services_JSON case 'double': case 'float': - return (float) $var; + return (float) $var; case 'string': // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT $ascii = ''; - $strlen_var = $this->strlen8($var); + $strlen_var = strlen($var); /* * Iterate over every character in the string, @@ -349,12 +295,6 @@ class Services_JSON case (($ord_var_c & 0xE0) == 0xC0): // characters U-00000080 - U-000007FF, mask 110XXXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - if ($c+1 >= $strlen_var) { - $c += 1; - $ascii .= '?'; - break; - } - $char = pack('C*', $ord_var_c, ord($var{$c + 1})); $c += 1; $utf16 = $this->utf82utf16($char); @@ -362,27 +302,17 @@ class Services_JSON break; case (($ord_var_c & 0xF0) == 0xE0): - if ($c+2 >= $strlen_var) { - $c += 2; - $ascii .= '?'; - break; - } // characters U-00000800 - U-0000FFFF, mask 1110XXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 $char = pack('C*', $ord_var_c, - @ord($var{$c + 1}), - @ord($var{$c + 2})); + ord($var{$c + 1}), + ord($var{$c + 2})); $c += 2; $utf16 = $this->utf82utf16($char); $ascii .= sprintf('\u%04s', bin2hex($utf16)); break; case (($ord_var_c & 0xF8) == 0xF0): - if ($c+3 >= $strlen_var) { - $c += 3; - $ascii .= '?'; - break; - } // characters U-00010000 - U-001FFFFF, mask 11110XXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 $char = pack('C*', $ord_var_c, @@ -397,11 +327,6 @@ class Services_JSON case (($ord_var_c & 0xFC) == 0xF8): // characters U-00200000 - U-03FFFFFF, mask 111110XX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - if ($c+4 >= $strlen_var) { - $c += 4; - $ascii .= '?'; - break; - } $char = pack('C*', $ord_var_c, ord($var{$c + 1}), ord($var{$c + 2}), @@ -413,11 +338,6 @@ class Services_JSON break; case (($ord_var_c & 0xFE) == 0xFC): - if ($c+5 >= $strlen_var) { - $c += 5; - $ascii .= '?'; - break; - } // characters U-04000000 - U-7FFFFFFF, mask 1111110X // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 $char = pack('C*', $ord_var_c, @@ -432,7 +352,8 @@ class Services_JSON break; } } - return '"'.$ascii.'"'; + + return '"'.$ascii.'"'; case 'array': /* @@ -469,7 +390,7 @@ class Services_JSON } // treat it like a regular array - $elements = array_map(array($this, '_encode'), $var); + $elements = array_map(array($this, 'encode'), $var); foreach($elements as $element) { if(Services_JSON::isError($element)) { @@ -480,27 +401,8 @@ class Services_JSON return '[' . join(',', $elements) . ']'; case 'object': - - // support toJSON methods. - if (($this->use & SERVICES_JSON_USE_TO_JSON) && method_exists($var, 'toJSON')) { - // this may end up allowing unlimited recursion - // so we check the return value to make sure it's not got the same method. - $recode = $var->toJSON(); - - if (method_exists($recode, 'toJSON')) { - - return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) - ? 'null' - : new Services_JSON_Error(class_name($var). - " toJSON returned an object with a toJSON method."); - - } - - return $this->_encode( $recode ); - } - $vars = get_object_vars($var); - + $properties = array_map(array($this, 'name_value'), array_keys($vars), array_values($vars)); @@ -531,13 +433,13 @@ class Services_JSON */ function name_value($name, $value) { - $encoded_value = $this->_encode($value); + $encoded_value = $this->encode($value); if(Services_JSON::isError($encoded_value)) { return $encoded_value; } - return $this->_encode(strval($name)) . ':' . $encoded_value; + return $this->encode(strval($name)) . ':' . $encoded_value; } /** @@ -610,14 +512,14 @@ class Services_JSON } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { // STRINGS RETURNED IN UTF-8 FORMAT - $delim = $this->substr8($str, 0, 1); - $chrs = $this->substr8($str, 1, -1); + $delim = substr($str, 0, 1); + $chrs = substr($str, 1, -1); $utf8 = ''; - $strlen_chrs = $this->strlen8($chrs); + $strlen_chrs = strlen($chrs); for ($c = 0; $c < $strlen_chrs; ++$c) { - $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); + $substr_chrs_c_2 = substr($chrs, $c, 2); $ord_chrs_c = ord($chrs{$c}); switch (true) { @@ -652,10 +554,10 @@ class Services_JSON } break; - case preg_match('/\\\u[0-9A-F]{4}/i', $this->substr8($chrs, $c, 6)): + case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): // single, escaped unicode character - $utf16 = chr(hexdec($this->substr8($chrs, ($c + 2), 2))) - . chr(hexdec($this->substr8($chrs, ($c + 4), 2))); + $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) + . chr(hexdec(substr($chrs, ($c + 4), 2))); $utf8 .= $this->utf162utf8($utf16); $c += 5; break; @@ -667,35 +569,35 @@ class Services_JSON case ($ord_chrs_c & 0xE0) == 0xC0: // characters U-00000080 - U-000007FF, mask 110XXXXX //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= $this->substr8($chrs, $c, 2); + $utf8 .= substr($chrs, $c, 2); ++$c; break; case ($ord_chrs_c & 0xF0) == 0xE0: // characters U-00000800 - U-0000FFFF, mask 1110XXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= $this->substr8($chrs, $c, 3); + $utf8 .= substr($chrs, $c, 3); $c += 2; break; case ($ord_chrs_c & 0xF8) == 0xF0: // characters U-00010000 - U-001FFFFF, mask 11110XXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= $this->substr8($chrs, $c, 4); + $utf8 .= substr($chrs, $c, 4); $c += 3; break; case ($ord_chrs_c & 0xFC) == 0xF8: // characters U-00200000 - U-03FFFFFF, mask 111110XX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= $this->substr8($chrs, $c, 5); + $utf8 .= substr($chrs, $c, 5); $c += 4; break; case ($ord_chrs_c & 0xFE) == 0xFC: // characters U-04000000 - U-7FFFFFFF, mask 1111110X // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= $this->substr8($chrs, $c, 6); + $utf8 .= substr($chrs, $c, 6); $c += 5; break; @@ -725,7 +627,7 @@ class Services_JSON 'where' => 0, 'delim' => false)); - $chrs = $this->substr8($str, 1, -1); + $chrs = substr($str, 1, -1); $chrs = $this->reduce_string($chrs); if ($chrs == '') { @@ -740,19 +642,19 @@ class Services_JSON //print("\nparsing {$chrs}\n"); - $strlen_chrs = $this->strlen8($chrs); + $strlen_chrs = strlen($chrs); for ($c = 0; $c <= $strlen_chrs; ++$c) { $top = end($stk); - $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); + $substr_chrs_c_2 = substr($chrs, $c, 2); if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { // found a comma that is not inside a string, array, etc., // OR we've reached the end of the character list - $slice = $this->substr8($chrs, $top['where'], ($c - $top['where'])); + $slice = substr($chrs, $top['where'], ($c - $top['where'])); array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); - //print("Found split at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); if (reset($stk) == SERVICES_JSON_IN_ARR) { // we are in an array, so just push an element onto the stack @@ -765,19 +667,20 @@ class Services_JSON // for now $parts = array(); - if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:/Uis', $slice, $parts)) { - // "name":value pair + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // "name":value pair $key = $this->decode($parts[1]); - $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); + $val = $this->decode($parts[2]); + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { $obj[$key] = $val; } else { $obj->$key = $val; } - } elseif (preg_match('/^\s*(\w+)\s*:/Uis', $slice, $parts)) { + } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { // name:value pair, where name is unquoted $key = $parts[1]; - $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); + $val = $this->decode($parts[2]); if ($this->use & SERVICES_JSON_LOOSE_TYPE) { $obj[$key] = $val; @@ -795,12 +698,12 @@ class Services_JSON } elseif (($chrs{$c} == $top['delim']) && ($top['what'] == SERVICES_JSON_IN_STR) && - (($this->strlen8($this->substr8($chrs, 0, $c)) - $this->strlen8(rtrim($this->substr8($chrs, 0, $c), '\\'))) % 2 != 1)) { + ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { // found a quote, we're in a string, and it's not escaped // we know that it's not escaped becase there is _not_ an // odd number of backslashes at the end of the string so far array_pop($stk); - //print("Found end of string at {$c}: ".$this->substr8($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); } elseif (($chrs{$c} == '[') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { @@ -811,7 +714,7 @@ class Services_JSON } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { // found a right-bracket, and we're in an array array_pop($stk); - //print("Found end of array at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); } elseif (($chrs{$c} == '{') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { @@ -822,7 +725,7 @@ class Services_JSON } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { // found a right-brace, and we're in an object array_pop($stk); - //print("Found end of object at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); } elseif (($substr_chrs_c_2 == '/*') && in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { @@ -839,7 +742,7 @@ class Services_JSON for ($i = $top['where']; $i <= $c; ++$i) $chrs = substr_replace($chrs, ' ', $i, 1); - //print("Found end of comment at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); } @@ -863,7 +766,7 @@ class Services_JSON function isError($data, $code = null) { if (class_exists('pear')) { - return PEAR::isError($data, $code); + return @PEAR::isError($data, $code); } elseif (is_object($data) && (get_class($data) == 'services_json_error' || is_subclass_of($data, 'services_json_error'))) { return true; @@ -871,38 +774,6 @@ class Services_JSON return false; } - - /** - * Calculates length of string in bytes - * @param string - * @return integer length - */ - function strlen8( $str ) - { - if ( $this->_mb_strlen ) { - return mb_strlen( $str, "8bit" ); - } - return strlen( $str ); - } - - /** - * Returns part of a string, interpreting $start and $length as number of bytes. - * @param string - * @param integer start - * @param integer length - * @return integer length - */ - function substr8( $string, $start, $length=false ) - { - if ( $length === false ) { - $length = $this->strlen8( $string ) - $start; - } - if ( $this->_mb_substr ) { - return mb_substr( $string, $start, $length, "8bit" ); - } - return substr( $string, $start, $length ); - } - } if (class_exists('PEAR_Error')) { @@ -929,5 +800,5 @@ if (class_exists('PEAR_Error')) { } } - -} + +} \ No newline at end of file From 74e92e364c4cb65fc2b3493e542b99d77a5472df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 31 Oct 2013 18:26:09 +0100 Subject: [PATCH 199/247] // php warning --- admin-dev/themes/default/template/helpers/kpi/kpi.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin-dev/themes/default/template/helpers/kpi/kpi.tpl b/admin-dev/themes/default/template/helpers/kpi/kpi.tpl index 358d05d42..ffc91fcba 100644 --- a/admin-dev/themes/default/template/helpers/kpi/kpi.tpl +++ b/admin-dev/themes/default/template/helpers/kpi/kpi.tpl @@ -32,7 +32,7 @@ {/if} {$title|escape}
    {$subtitle|escape}
    {$value|escape} - + {if isset($source) && $source != ''} - - {if count($quick_access) > 0} @@ -329,13 +317,15 @@ {/if}
    From 062fb90c2ea68cac43669381acb58d87c6d19a78 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 31 Oct 2013 19:24:41 +0100 Subject: [PATCH 204/247] [-] IN : Fix Unknown column 'module_name' in 'ps_webservice_account' during upgrade --- install-dev/upgrade/sql/1.5.5.0.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install-dev/upgrade/sql/1.5.5.0.sql b/install-dev/upgrade/sql/1.5.5.0.sql index c93e293ac..cb22be373 100644 --- a/install-dev/upgrade/sql/1.5.5.0.sql +++ b/install-dev/upgrade/sql/1.5.5.0.sql @@ -4,8 +4,7 @@ ALTER TABLE `PREFIX_store` CHANGE `latitude` `latitude` DECIMAL( 13, 8 ) NULL INSERT INTO `PREFIX_configuration` (`name`, `value`, `date_add`, `date_upd`) VALUES('PS_CUSTOMER_CREATION_EMAIL', 1, NOW(), NOW()); -ALTER TABLE `PREFIX_webservice_account` CHANGE `class_name` `class_name` VARCHAR(64) NOT NULL DEFAULT 'WebserviceRequest', -CHANGE `module_name` `module_name` VARCHAR(64) NULL DEFAULT NULL; +ALTER TABLE `PREFIX_webservice_account` CHANGE `class_name` `class_name` VARCHAR(64) NOT NULL DEFAULT 'WebserviceRequest'; /* PHP:add_module_to_hook(blockcart, actionCartListOverride); */; /* PHP:add_module_to_hook(blockmanufacturer, actionObjectManufacturerDeleteAfter); */; From bf781ed2674d0dd7f499b119cf78f32790d55d88 Mon Sep 17 00:00:00 2001 From: Kevin Granger Date: Fri, 1 Nov 2013 15:50:33 +0100 Subject: [PATCH 205/247] // horizontal nav --- admin-dev/themes/default/css/admin-theme.css | 2 +- .../default/css/admin-theme/_admin-nav.sass | 61 +++++++++++++------ admin-dev/themes/default/js/admin-theme.js | 41 ++++++++----- 3 files changed, 69 insertions(+), 35 deletions(-) diff --git a/admin-dev/themes/default/css/admin-theme.css b/admin-dev/themes/default/css/admin-theme.css index f3179035f..d3507b6fc 100644 --- a/admin-dev/themes/default/css/admin-theme.css +++ b/admin-dev/themes/default/css/admin-theme.css @@ -30,7 +30,7 @@ * Email: dave@fontawesome.io * Twitter: http://twitter.com/byscuits * Work: Lead Product Designer @ Kyruus - http://kyruus.com - */@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,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right}.pull-left,.page-head h2.page-title{float:left}[class^="icon-"].pull-left,.page-head h2[class^="icon-"].page-title,[class*=" icon-"].pull-left,.page-head h2[class*=" icon-"].page-title{margin-right:.3em}[class^="icon-"].pull-right,#content h3:not(.modal-title) [class^="icon-"].panel-heading-action,#content .panel-heading [class^="icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].panel-heading-action,[class*=" icon-"].pull-right,#content h3:not(.modal-title) [class*=" icon-"].panel-heading-action,#content .panel-heading [class*=" icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].panel-heading-action{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-"],#header_infos .nav>.active>a>[class^="icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class^="icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class^="icon-"],.navbar-inverse #header_employee_box>.active>a>[class^="icon-"],#header_infos #header_employee_box>.active>a>[class^="icon-"],.navbar-inverse #header_quick>.active>a>[class^="icon-"],#header_infos #header_quick>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],#header_infos .nav>.active>a>[class*=" icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],.navbar-inverse #header_employee_box>.active>a>[class*=" icon-"],#header_infos #header_employee_box>.active>a>[class*=" icon-"],.navbar-inverse #header_quick>.active>a>[class*=" icon-"],#header_infos #header_quick>.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,#header_notifs_icon_wrapper [class^="icon-"].icon-large,#header_employee_box [class^="icon-"].icon-large,#header_quick [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large,#header_notifs_icon_wrapper [class*=" icon-"].icon-large,#header_employee_box [class*=" icon-"].icon-large,#header_quick [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .btn [class^="icon-"].data_value:before,.nav [class^="icon-"].icon-spin,#header_notifs_icon_wrapper [class^="icon-"].icon-spin,#header_employee_box [class^="icon-"].icon-spin,#header_quick [class^="icon-"].icon-spin,.nav #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .nav [class^="icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class^="icon-"].data_value:before,#header_employee_box #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_employee_box [class^="icon-"].data_value:before,#header_quick #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_quick [class^="icon-"].data_value:before,.btn [class*=" icon-"].icon-spin,.btn #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .btn [class*=" icon-"].data_value:before,.nav [class*=" icon-"].icon-spin,#header_notifs_icon_wrapper [class*=" icon-"].icon-spin,#header_employee_box [class*=" icon-"].icon-spin,#header_quick [class*=" icon-"].icon-spin,.nav #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .nav [class*=" icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class*=" icon-"].data_value:before,#header_employee_box #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_employee_box [class*=" icon-"].data_value:before,#header_quick #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_quick [class*=" icon-"].data_value:before{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn h2[class^="icon-"].icon-2x.page-title,.btn [class*=" icon-"].pull-left.icon-2x,.btn .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn h2[class*=" icon-"].icon-2x.page-title,.btn [class^="icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn [class*=" icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn #dashboard .loading [class^="icon-"].icon-large.data_value:before,#dashboard .loading .btn [class^="icon-"].icon-large.data_value:before,.btn [class*=" icon-"].icon-spin.icon-large,.btn #dashboard .loading [class*=" icon-"].icon-large.data_value:before,#dashboard .loading .btn [class*=" icon-"].icon-large.data_value:before{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class^="icon-"].icon-2x.page-title,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class*=" icon-"].icon-2x.page-title,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small [class*=" icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{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,#dashboard .loading .data_value:before{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,a #dashboard .loading .data_value:before,#dashboard .loading a .data_value:before{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,.process-icon-cancel: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,.icon-AdminAdmin:before,.process-icon-configure:before{content:"\f013"}.icon-trash:before,.process-icon-delete: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,.process-icon-save-date:before,.process-icon-save-status: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,.process-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,.icon-AdminPriceRule:before{content:"\f02c"}.icon-book:before,.icon-AdminCatalog: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,.process-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,.process-icon-newCombination.toolbar-new:before{content:"\f055"}.icon-minus-sign:before,.process-icon-newCombination.toolbar-cancel:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before,.process-icon-help:before,.process-icon-help-new: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,.process-icon-new-module: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,.process-icon-preview:before,.process-icon-previewURL: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,.icon-AdminParentStats:before,.process-icon-stats: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,.icon-AdminTools: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,.icon-AdminParentOrders: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,.process-icon-back: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,.icon-AdminParentLocalization:before{content:"\f0ac"}.icon-wrench:before,.icon-AdminParentPreferences: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,.icon-AdminParentCustomer: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,.process-icon-duplicate:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before,.process-icon-save:before,.process-icon-save-and-stay:before,.process-icon-save-and-preview: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,.icon-AdminParentShipping: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,.icon-AdminDashboard: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,.process-icon-partial_refund:before{content:"\f0ec"}.icon-cloud-download:before,.process-icon-export:before{content:"\f0ed"}.icon-cloud-upload:before,.process-icon-import: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,.process-icon-newAttributes:before,.process-icon-new:before,.process-icon-new-url: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,#nav-sidebar ul.menu li.maintab.expanded span.submenu_expand:before{content:"\f106"}.icon-angle-down:before,#nav-sidebar ul.menu li.maintab span.submenu_expand: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,.icon-AdminParentModules:before,.process-icon-modules-list: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,.process-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,.icon-AdminStock:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}html,body{min-height:100%;height:100%}#main{min-height:100%;padding:36px 0 60px;margin:0 0 -60px 0;background-color:#f8f8f8;background-image:url("../img/patterns/bedge_grunge.png")}#content{padding:80px 20px 0;margin-left:240px;-webkit-transition-property:margin;-moz-transition-property:margin;-o-transition-property:margin;transition-property:margin;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#content fieldset,#content .panel,#content #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #content .notifs_panel,#content #dash_version{padding:20px;margin-bottom:20px;border:solid 1px #dfdfdf;background-color:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset;box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset}#content h3:not(.modal-title),#content .panel-heading:not(.modal-title),#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title),#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title),#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{border:none;padding:0 5px;margin:-16px -16px 15px -16px;color:contrasted(#e6e8e3);font-size:1.2em;line-height:30px;font-weight:300;text-transform:uppercase;background-color:#fff;border-bottom:solid 1px #ccc}#content h3:not(.modal-title) i,#content .panel-heading:not(.modal-title) i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) i,#content h3:not(.modal-title) a,#content .panel-heading:not(.modal-title) a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) a,#content .panel-heading i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header i,#content .panel-heading a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header a{color:contrasted(#e6e8e3)}#content h3:not(.modal-title) .badge,#content .panel-heading:not(.modal-title) .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .badge,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content h3:not(.modal-title) .notifs_badge,#content .panel-heading:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading:not(.modal-title) .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .notifs_badge,#content .panel-heading .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .badge,#content .panel-heading #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_badge{background-color:#1ba6e5;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;height:29px;line-height:25px;font-size:1.3em;margin-right:7px;font-weight:300;float:left;margin-left:-5px}#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{margin-right:-5px}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn{float:left;height:30px;width:30px;color:#1ba6e5;border-left:solid 1px #ccc}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover{text-decoration:none;color:#000}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn i{text-align:center;font-size:1.3em;line-height:30px}#content .panel-danger .panel-heading,#content .panel-danger #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .panel-danger .notifs_panel_header{background-color:#8bc954 !important}#content form .alert,#content form #carrier_wizard .wizard_error,#carrier_wizard #content form .wizard_error{clear:both}@media (max-width: 768px){#content{margin-left:0;width:100%}}#nobootstrap{float:left}.data-focus.data-focus-primary{background-color:#1ba6e5;color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}#customer_part .customerCard.selected-customer .panel,#customer_part .customerCard.selected-customer #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #customer_part .customerCard.selected-customer .notifs_panel,#customer_part .customerCard.selected-customer #dash_version{color:#5cb85c;border:solid 2px #5cb85c}body.display-modal #content,body.display-modal #main{margin:0;padding:0;background:#f8f8f8}#content .panel .panel-footer,#content #header_notifs_icon_wrapper .notifs_panel .panel-footer,#header_notifs_icon_wrapper #content .notifs_panel .panel-footer,#content #dash_version .panel-footer,#header_notifs_icon_wrapper .notifs_panel #content .panel .notifs_panel_footer,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper #content .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #content #dash_version .notifs_panel_footer{margin:15px -20px -20px;height:73px}.panel-footer .btn.pull-right,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.pull-right,.panel-footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-footer .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action,.panel-footer #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action{margin-left:3px}.attributes-color-container{width:40px;height:25px;display:block;border:solid 1px #000}#header_infos{background-color:#242424}#header_shopname{font:300 1.3em/100% "Ubuntu",sans-serif;position:relative;padding:0 0 0 45px;margin:0 20px 0 0;height:37px;line-height:37px}#header_shopname img{position:absolute;top:0;left:0;width:37px;height:37px}#header_notifs_icon_wrapper li a{padding:9px 5px}#header_notifs_icon_wrapper>li>a>i{font-size:1.4em;color:#fff;vertical-align:middle}#header_notifs_icon_wrapper .notifs_badge{background-color:#8bc954}#header_notifs_icon_wrapper .notifs_dropdown{background-color:transparent;border:none;box-shadow:none}#header_notifs_icon_wrapper .notifs_panel{width:300px;-webkit-box-shadow:rgba(0,0,0,0.5) 2px 2px 8px;box-shadow:rgba(0,0,0,0.5) 2px 2px 8px}#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header h3,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_header{padding:0;font-size:1.3em;margin:0}#header_nav_toggle{background-color:#000;border:none;color:#fff}#header_employee_box a img{margin-right:5px}#header_employee_box #header_foaccess i{font-size:1.2em}#header_search{width:160px;padding:0 0 0 10px;position:relative}@media (max-width: 768px){#header_search{width:100%}}#header_search input,#header_search .form-group{margin:0}#header_search .form-group.focus-search{position:absolute;z-index:900;top:0;left:10px;width:400px}.employee_name{position:relative;padding-left:34px !important}.employee_avatar_small{height:30px;width:30px;display:inline-block;position:absolute;top:4px;left:0}.employee_avatar_small img{width:100%;height:100%;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}.employee_avatar{height:100px;width:100px;display:block;margin:10px auto 10px auto;overflow:hidden;-webkit-border-radius:120px;-moz-border-radius:120px;-ms-border-radius:120px;-o-border-radius:120px;border-radius:120px;-webkit-box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px;box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px}.employee_avatar img{width:100%;height:100%}#footer{z-index:600;display:block;width:100%;background-color:rgba(36,36,36,0.85);color:#888;position:fixed;bottom:0;height:50px;line-height:50px}#footer a{color:#ccc}#footer #go-top{position:fixed;bottom:10px;height:30px;width:30px;text-align:center;line-height:30px;right:10px;z-index:9003;display:block;padding:0px 6px 0px 6px;margin:-2px 0px 0px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;background-color:rgba(0,0,0,0.5)}#footer #go-top:hover{background-color:#000}#footer .social-networks{margin:4px 0 0 0}a.link-social i{font-size:2em;width:30px;height:30px;display:inline-block;line-height:30px;text-align:center;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}a.link-social:hover{text-decoration:none}.link-twitter i{color:#fff;background-color:#7cceef}.link-twitter i:hover{color:#7cceef;background-color:#fff}.link-facebook i{color:#fff;background-color:#557dbb}.link-facebook i:hover{color:#557dbb;background-color:#fff}.link-github i{color:#000;background-color:#fff}.link-github i:hover{color:#fff;background-color:#000}.link-google i{color:#fff;background-color:#e6644e}.link-google i:hover{color:#e6644e;background-color:#fff}#nav-sidebar{position:fixed;width:240px;height:100% !important;overflow-y:auto;z-index:500;background-color:#515561;border-right:1px solid #000}#nav-sidebar li.maintab>a>i{display:inline-block;height:30px;width:30px;font-size:20px;line-height:30px;color:#fff;text-align:center;-webkit-border-radius:40px;-moz-border-radius:40px;-ms-border-radius:40px;-o-border-radius:40px;border-radius:40px}#nav-sidebar li:not(.active) ul{display:none}#nav-sidebar li.active span.submenu_expand{display:none}#nav-sidebar ul.menu{margin:0 0 100px 0;padding:0;border-top:1px #000 solid;list-style:none}#nav-sidebar ul.menu li.maintab{position:relative}#nav-sidebar ul.menu li.maintab.active a.title,#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff;background-color:#1ba6e5}#nav-sidebar ul.menu li.maintab.active a.title i,#nav-sidebar ul.menu li.maintab.active a.title:hover i{color:#000;background-color:#fff}#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff}#nav-sidebar ul.menu li.maintab.expanded a.title{color:#fff;background-color:#3a3d45;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded a.title:hover{background-color:#686d7d}#nav-sidebar ul.menu li.maintab.expanded a.title i{color:#fff}#nav-sidebar ul.menu li.maintab.expanded ul.submenu{display:block}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a{color:#9da1ae;background-color:#2e3037;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a:hover{color:#fff;background-color:#454953}#nav-sidebar ul.menu li.maintab a.title{display:block;position:relative;padding:2px 0 2px 8px;border-bottom:1px solid #3a3d45;font-size:12px;line-height:28px;color:#cacccf;background-color:#515561;text-transform:uppercase;text-decoration:none;-webkit-transition-property:background-color,border,box-shadow;-moz-transition-property:background-color,border,box-shadow;-o-transition-property:background-color,border,box-shadow;transition-property:background-color,border,box-shadow;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title i{color:#9094a2;background-color:#17181c;-webkit-transition-property:color;-moz-transition-property:color;-o-transition-property:color;transition-property:color;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title:hover{background-color:#686d7d;color:#fff}#nav-sidebar ul.menu li.maintab a.title:hover i{color:#fff}#nav-sidebar ul.menu li.maintab span.submenu_expand{position:absolute;right:10px;top:2px;cursor:pointer;font-family:FontAwesome;font-size:24px;font-weight:100;color:#000;background-color:transparent;text-shadow:#686d7d 1px 1px 0}#nav-sidebar ul.menu li.maintab span.submenu_expand:hover{color:#fff;text-shadow:#232429 -1px -1px 0}#nav-sidebar ul.submenu{list-style:none;padding:0}#nav-sidebar ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;border:none;border-bottom:solid 1px #eee;background-color:#fff}#nav-sidebar ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-sidebar ul.submenu li:last-child a{border-bottom:none}#nav-sidebar ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}@media (max-width: 768px){#nav-sidebar{display:none}}#nav-topbar{position:fixed;height:28px;top:38px;left:80;width:100%;z-index:600;background-color:#fff;border-bottom:solid 1px rgba(0,0,0,0.4)}#nav-topbar ul.menu{margin:0;padding:0;display:block;list-style:none}#nav-topbar ul.menu>li{padding:0;margin:0;border-right:solid 1px rgba(0,0,0,0.4);list-style:none;position:relative;float:left}#nav-topbar ul.menu>li>a{display:block;line-height:28px;color:#515561;padding:0 6px;margin:0}#nav-topbar ul.menu>li>a i{margin:0;width:15px;background-color:transparent;font-size:18px}#nav-topbar ul.menu>li.active,#nav-topbar ul.menu>li:hover{background-color:#1ba6e5}#nav-topbar ul.menu>li.active>a,#nav-topbar ul.menu>li:hover>a{text-decoration:none;color:#fff}#nav-topbar ul.menu>li.active>a i,#nav-topbar ul.menu>li:hover>a i{color:#fff}#nav-topbar .menu-collapse{display:none}#nav-topbar ul.submenu{display:none !important;-webkit-box-shadow:rgba(0,0,0,0.3) 0 2px 4px;box-shadow:rgba(0,0,0,0.3) 0 2px 4px}#nav-topbar>ul.menu>li.expanded ul.submenu{display:block !important}#nav-topbar>ul.menu>li ul.submenu{display:none !important;position:absolute;margin:0;padding:0;left:0;top:28px;width:200px !important}#nav-topbar>ul.menu>li ul.submenu li{width:200px;padding:0;list-style:none}#nav-topbar>ul.menu>li ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;background-color:#fff;border-bottom:solid 1px #eee}#nav-topbar>ul.menu>li ul.submenu li a:hover{color:#fff;background-color:#1ba6e5;text-decoration:none}#nav-topbar>ul.menu>li ul.submenu li:last-child a{border-bottom:none}#nav-topbar>ul.menu>li ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}.menu-collapse{height:54px;width:100%;font-size:2em;text-align:center;line-height:55px;display:block;background-color:#515561;border-bottom:3px solid #3a3d45;color:#0b0c0e}.page-topbar #main{padding-top:64px}.page-topbar #nav-sidebar{display:none}.page-topbar .page-head{top:66px}.page-topbar #content{margin-left:0;width:100%}.page-topbar #content .page-head h2.page-title{padding:0 0 0 20px}.page-sidebar-closed #nav-sidebar{overflow:visible;width:50px;-webkit-transition-property:width;-moz-transition-property:width;-o-transition-property:width;transition-property:width;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-sidebar-closed #nav-sidebar span.title{display:none}.page-sidebar-closed #nav-sidebar ul.submenu{display:none !important;padding-top:37px;position:relative;top:0;-webkit-box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px;box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px}.page-sidebar-closed #nav-sidebar>ul>li:hover{width:250px !important;position:relative}.page-sidebar-closed #nav-sidebar>ul>li:hover span.title{display:inline-block}.page-sidebar-closed #nav-sidebar>ul>li:hover ul.submenu{display:block !important;position:absolute;left:50px;width:200px !important}.page-sidebar-closed #content{margin-left:50px}.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 70px}@media (max-width: 768px){.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 20px}}@media (max-width: 768px){.page-sidebar-closed #content{margin-left:0;width:100%}}.page-sidebar-closed .submenu_expand{display:none}[class^="icon-Admin"]{margin-right:6px}.fixed-width-xs{width:40px !important}.fixed-width-sm{width:80px !important}.fixed-width-md{width:120px !important}.fixed-width-lg{width:160px !important}.fixed-width-xl{width:200px !important}.fixed-width-xxl{width:250px !important}.row-margin-bottom{margin-bottom:15px}.row-padding-top{padding-top:15px}.thumbnail,.img-thumbnail,.thumbnail{background-color:#fff;border-color:#ccc !important}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{background-color:#8fc04d}#header_notifs_icon_wrapper .badge-success.notifs_badge,.badge-success.badge{background-color:#5cb85c}#header_notifs_icon_wrapper .badge-error.notifs_badge,.badge-error.badge{background-color:#d9534f}.nav-tabs{border-bottom:none}.nav-tabs li a{font-size:1.1em;font-family:"Ubuntu",sans-serif;text-transform:uppercase;font-weight:300}.nav-tabs li.active a,.nav-tabs li.active a:hover,.nav-tabs li.active a:focus{background-color:#fff}.alert.alert-danger,#carrier_wizard .wizard_error{padding-left:60px;position:relative}.alert.alert-danger:before,#carrier_wizard .wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00d"}.alert.alert-success,#carrier_wizard .alert-success.wizard_error{padding-left:60px;position:relative}.alert.alert-success:before,#carrier_wizard .alert-success.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00c"}.alert.alert-info,#carrier_wizard .alert-info.wizard_error{padding-left:60px;position:relative}.alert.alert-info:before,#carrier_wizard .alert-info.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\F05A"}.overflow-y{height:200px;overflow-y:auto}.table{border-collapse:separate;border-spacing:0 2px 0 0;margin-bottom:5px}.table thead>tr>th{border:none;font-weight:normal;vertical-align:top;border-bottom:solid 1px #8bc6e7}.table thead>tr>th span.title_box{color:#000;font-size:1.1em;font-weight:bold;display:block;word-wrap:nowrap;white-space:nowrap}.table thead>tr>th span.title_box.active{font-weight:bold}.table thead>tr>th span.title_box a{text-decoration:none}.table thead>tr>th span.title_box a.active{color:#000}.table input,.table select{margin:0}.table tbody>tr>td{border-top:none;background-color:#fff}.table tbody>tr>td{padding:3px 7px;vertical-align:middle;word-wrap:nowrap;font-size:12px;border-bottom:solid 1px #eee}.table td.center,.table th.center{text-align:center}.table td.pointer{cursor:pointer}tr.filter{background-color:#dfeff8}tr.filter input[type="text"].filter,tr.filter input[type="password"].filter,tr.filter select.filter{font-size:12px;border-color:#a0d0eb}tr.highlighted td{background-color:#1ba6e5 !important;color:#fff}td.actions{min-width:200px}.bulk-actions{margin:17px 0 0 0}.tree{padding:0 0 0 20px;list-style:none}.tree input{margin-right:4px}.tree i{font-size:1.3em}.tree .tree-item-name,.tree .tree-folder-name{padding:0 5px;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;font-weight:normal}.tree .tree-item-name:hover,.tree .tree-folder-name:hover{background-color:#eee;cursor:pointer}.tree .tree-selected{background-color:#a4dcf5}.tree .tree-selected i.tree-dot{background-color:#1ba6e5}.tree i.tree-dot{display:inline-block;position:relative;width:6px;height:6px;margin:0 4px 0 6px;background-color:#ccc;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.tree .tree-item-disable,.tree .tree-folder-name-disable{color:#ccc}.tree .tree-item-disable:hover,.tree .tree-folder-name-disable:hover{color:#ccc;background-color:none}.tree-actions{padding-bottom:4px;display:inline-block}.tree-panel-heading-controls{margin:-20px -20px 20px;padding:5px;border-bottom:solid 1px #dfdfdf}label.control-label{font-size:13px;font-weight:normal;color:#666}label.control-label span.label-tooltip{text-decoration:none;font-size:13px;background-color:#ebebeb;border:none;border-bottom:solid 1px #dfdfdf;padding:0 5px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}label.required:before{content:"*";color:red;font-size:14px;position:relative;line-height:12px}.tooltip{font-size:12px}select.input-tiny,input[type="text"].input-tiny,input[type="password"].input-tiny{width:80px;float:left}textarea{resize:none}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{background-color:#fefbe2;-webkit-box-shadow:none;box-shadow:none}.btn{text-transform:uppercase}.btn .caret{border-top-color:#333 !important}.btn:hover .caret,.btn:focus .caret{border-top-color:#fff !important}.btn.btn-default{-webkit-box-shadow:#e6e6e6 0 -2px 0 inset;box-shadow:#e6e6e6 0 -2px 0 inset}.btn.btn-default:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default:hover i{color:#fff}.btn.btn-primary{background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default[disabled]{border-color:#999;color:#999;background-color:#f2f2f2;-webkit-box-shadow:#ccc 0 -2px 0 inset;box-shadow:#ccc 0 -2px 0 inset}.dropdown-menu{text-align:left}.btn-group-action{width:160px;float:right}.btn-group-action .btn-group{float:right}.btn-group-action a{text-decoration:none}.tt-query{border-bottom-right-radius:3px !important;border-top-right-radius:3px !important}.tt-dropdown-menu{background-color:#fff;border:solid 1px #ccc;font-size:0.9em;text-transform:none}.tt-suggestions{padding:0 6px;-webkit-box-shadow:rgba(0,0,0,0.25) 0 1px 4px;box-shadow:rgba(0,0,0,0.25) 0 1px 4px}.tt-suggestion p{border-bottom:solid 1px #ccc;margin:0 !important;padding:0 !important}.tt-suggestion:last-child p{border-bottom:none}.tagify-container{background-color:#fff;padding:2px 6px;min-height:30px;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;border:solid 1px #ccc;-webkit-box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset;box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset}.tagify-container span{float:left}.tagify-container>span{display:inline-block;padding:3px 5px;margin:3px;border-radius:2px;border:1px solid #1ba6e5;background-color:#60c1ed;color:#fff}.tagify-container>span>a{padding-left:5px;color:#1ba6e5;text-decoration:none;font-weight:bold}.tagify-container>input{margin-top:2px;border:0 none;width:100px;-webkit-box-shadow:none;box-shadow:none}.tagify-container>input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.box-stats{background-color:#fff}.box-stats .boxchart-overlay{padding:10px 10px 5px 10px;margin-right:10px;float:left;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats i{float:left;height:64px;width:64px;margin-right:10px;color:#fff;font-size:35px;text-align:center;line-height:64px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats .title{color:#666;display:block}.box-stats .value{font-size:22px}.box-stats small{line-height:0.3em;color:#aaa;text-transform:uppercase}.box-stats:hover{text-decoration:none}.color1 i,.color1 .boxchart-overlay{background-color:#2ba8e3;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color1 .value{color:#2ba8e3}.color2 i,.color2 .boxchart-overlay{background-color:#ff5450;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color2 .value{color:#ff5450}.color3 i,.color3 .boxchart-overlay{background-color:#9e5ba1;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color3 .value{color:#9e5ba1}.color4 i,.color4 .boxchart-overlay{background-color:#95cc6b;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color4 .value{color:#95cc6b}.data_chart rect{fill:#fff}.data_chart path{stroke:#fff;stroke-width:2;fill:none}.data_chart line{stroke:#000}.data_chart .area{fill:rgba(255,255,255,0.3);stroke-width:0}.icon-big{font-size:4em;color:#c5c5c5}.switch .slide-button,.toggle p span{display:none}.switch{background-color:#d2d2d2;border-radius:3px}.switch label{padding:0;cursor:pointer}@media only screen{.toggle{position:relative;padding:0;margin-left:100px}.toggle label{position:relative;z-index:3;display:block;width:100%}.toggle input{position:absolute;opacity:0;z-index:5}.toggle p{position:absolute;left:-100px;width:100%;margin:0;padding-right:100px;text-align:left}.toggle p span{position:absolute;top:0;left:0;z-index:5;display:block;width:50%;margin-left:100px;text-align:center}.toggle:last-child{left:50%}.toggle .slide-button{position:absolute;right:0;top:0;z-index:4;display:block;width:50%;height:100%;padding:0}.switch{position:relative;padding:0}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center}.switch .slide-button{position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch.switch-three label,.switch.switch-three .slide-button{width:33.3%}.switch.switch-three input:checked:nth-of-type(2) ~ .slide-button{left:33.3%}.switch.switch-three input:checked:last-of-type ~ .slide-button{left:66.6%}.switch.switch-four label,.switch.switch-four .slide-button{width:25%}.switch.switch-four input:checked:nth-of-type(2) ~ .slide-button{left:25%}.switch.switch-four input:checked:nth-of-type(3) ~ .slide-button{left:50%}.switch.switch-four input:checked:last-of-type ~ .slide-button{left:75%}.switch.switch-five label,.switch.switch-five .slide-button{width:20%}.switch.switch-five input:checked:nth-of-type(2) ~ .slide-button{left:20%}.switch.switch-five input:checked:nth-of-type(3) ~ .slide-button{left:40%}.switch.switch-five input:checked:nth-of-type(4) ~ .slide-button{left:60%}.switch.switch-five input:checked:last-of-type ~ .slide-button{left:80%}.toggle,.switch{display:block;height:27px}.switch *,.toggle *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.switch .slide-button,.toggle .slide-button{display:block;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-ms-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.toggle label,.toggle p,.switch label{line-height:27px;vertical-align:middle}.toggle input:checked ~ .slide-button{right:50%}.toggle input:focus ~ .slide-button,.switch input:focus+label{outline:1px dotted #888}.switch,.toggle{-webkit-animation:bugfix infinite 1s}.prestashop-switch{min-width:150px;color:#666;text-align:center;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset;box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset}.prestashop-switch label{padding-top:0 !important;font-weight:500}.prestashop-switch input:checked+label{color:#333 !important;text-shadow:rgba(255,255,255,0.7) 1px 1px 0}.prestashop-switch input:not(:checked)+label i{color:#666 !important}.prestashop-switch .slide-button{position:relative;margin-right:3px;color:#fff}.prestashop-switch p{color:#333}.prestashop-switch span{color:#fff}}.page-head{width:100%;height:55px;padding:0 10px 0 0;margin:0;border-bottom:4px solid #75a139;position:fixed;top:36px;left:0px;z-index:499;background-color:#8fc04d;-webkit-box-shadow:rgba(0,0,0,0.15) 0 7px 0;box-shadow:rgba(0,0,0,0.15) 0 7px 0}.page-head h2.page-title{padding:0 0 0 260px;font-size:18px;color:#fff;text-transform:uppercase}@media (max-width: 768px){.page-head h2.page-title{padding:0 0 0 20px}}.page-head h2.page-title a{border-bottom:dotted 1px #fff}.page-head h2.page-title a:hover{color:#000;border-color:#000}.page-head a{color:#fff;text-decoration:none}.page-head .btn-toolbar{margin:0;padding:3px 0 0 0}.page-head .btn-toolbar .nav-tabs{margin:0}.page-head .btn-toolbar .nav-tabs>li>a{color:#333}.toolbar_btn{position:relative;padding:2px 5px !important;margin-right:3px;font-size:12px;font-weight:600;color:#fff;text-align:center;text-shadow:none}.toolbar_btn:hover{color:#8fc04d;border-color:#fff;background-color:#fff !important}[class^="process-icon-"],[class*=" process-icon-"]{height:25px;min-width:32px;background-position:center;background-repeat:no-repeat;display:block;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:25px;line-height:25px;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:0.3em}.page-header-toolbar-back{border:none !important;display:inline-block}#datepicker .input-selected{margin:0}#datepicker #date-start.input-selected,#datepicker #date-end.input-selected{border:solid 3px #00a4e7}#datepicker #date-start-compare.input-selected,#datepicker #date-end-compare.input-selected{border:solid 3px #ff8000}#datepicker div#datepicker-form #date-range{border:solid 1px #0092ce}#datepicker div#datepicker-form #date-range .form-date-heading{background-color:#0092ce}#datepicker div#datepicker-form #date-compare{border:solid 1px #e67300}#datepicker div#datepicker-form #date-compare .form-date-heading{background-color:#e67300}#datepicker div#datepicker-form .form-date-heading{height:30px;line-height:30px;padding:0 0 0 8px}#datepicker div#datepicker-form .form-date-heading .title,#datepicker div#datepicker-form .form-date-heading .checkbox-title label{font-size:1.15em;color:#fff;font-weight:200;text-transform:uppercase;line-height:2em}#datepicker div#datepicker-form .form-date-heading .btn-default{background-color:rgba(255,255,255,0.3);font-weight:700;color:#fff;border:none}#datepicker div#datepicker-form .form-date-heading select{margin:2px 2px 0 0}#datepicker div#datepicker-form .form-date-body,#datepicker div#datepicker-form .form-date-actions{width:100%;padding:10px;background-color:#fff;display:inline-block}#datepicker div#datepicker-form .form-date-actions{border:solid 1px #ccc}#datepicker div#datepicker-form .form-date-group{clear:both;width:100%;margin:0 auto 6px auto}#datepicker div#datepicker-form .form-date-group label{font-size:0.8em;font-weight:700;text-transform:uppercase;color:#666}#datepicker div#datepicker-form .form-date-group input{margin:4px 4px 0 0}#datepicker div#datepicker-form .form-date-group input[type='text']{width:35%}#datepicker div#datepicker-form .form-date-group button{margin:5px 0 0 0}#datepicker .daterangepicker{position:relative;margin:0 0 8px 0;width:100%;font-size:13px;border:solid 1px #ccc}#datepicker .daterangepicker table{width:100%;margin:0;border-spacing:1px}#datepicker .daterangepicker thead tr th{background-color:#0092ce;color:#fff;font-size:0.7em;height:1.5em;text-transform:uppercase}#datepicker .daterangepicker thead tr:first-child th{background-color:#fff;border-bottom:1px solid #0092ce;font-weight:200;font-size:1.4em;color:#00a4e7}#datepicker .daterangepicker td,#datepicker .daterangepicker th{text-align:center;padding:0;position:relative}#datepicker .daterangepicker tr{border-bottom:solid 1px #fff}#datepicker .daterangepicker td{color:#00a4e7;height:2.4em;padding:0 8px;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:0.2s;transition-duration:0.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#datepicker .daterangepicker td.day:after{content:"";position:absolute;display:block;top:0;left:0;width:100%;z-index:0;background-color:transparent}#datepicker .daterangepicker td.day:hover{cursor:pointer}#datepicker .daterangepicker td.day.disabled{color:#ccc}#datepicker .daterangepicker td.old,#datepicker .daterangepicker td.new{color:#ccc}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).range-compare{background-color:#4ca0b1;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare,#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).range-compare{background-color:#4ca0b1;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).end-selected-compare,#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare).range{background-color:#ba924c;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare).range{background-color:#ba924c;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected.start-selected{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#00a4e7}#datepicker .daterangepicker td.end-selected.start-selected.range-compare{background-color:#4ca0b1;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#ff8000}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare.range{background-color:#ba924c;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.range{color:#cef1ff;background-color:#1bbdff}#datepicker .daterangepicker td.range.range-compare{background-color:#8dab99}#datepicker .daterangepicker td.range-compare{color:#fff2e5;background-color:#f93}#datepicker .daterangepicker td.range-compare.range{background-color:#8dab99}#datepicker .daterangepicker td.today{background-color:#fff}#datepicker .daterangepicker td span{padding:0;display:block;width:33.333%;height:3em;line-height:3em;font-weight:400;float:left;text-transform:uppercase;cursor:pointer}#datepicker .daterangepicker td span:hover{color:#fff;background-color:#00a4e7}#datepicker .daterangepicker td span.active{background-color:#00a4e7;color:#fff}#datepicker .daterangepicker td span.old{color:#ccc}#datepicker .daterangepicker th.next{text-align:right;padding:0 10px 0 0}#datepicker .daterangepicker th.prev{text-align:left;padding:0 0 0 10px}#datepicker .daterangepicker th.next,#datepicker .daterangepicker th.prev,#datepicker .daterangepicker th.month-switch{font-size:1.3em;line-height:2em;height:2em}#datepicker .daterangepicker th.next:hover,#datepicker .daterangepicker th.prev:hover,#datepicker .daterangepicker th.month-switch:hover{background-color:#0092ce;color:#fff}#datepicker .daterangepicker thead tr:first-child th{cursor:pointer}.chevron-left,.chevron-right{position:relative}.chevron-left:before,.chevron-right:before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.chevron-left:before{right:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #00a4e7;background-color:#1bbdff}.chevron-right:before{left:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #1bbdff;background-color:#00a4e7}.input-complete{-webkit-animation:one 0.2s ease-in-out;-moz-animation:one 0.2s ease-in-out;-ms-animation:one 0.2s ease-in-out;-o-animation:one 0.2s ease-in-out;animation:one 0.2s ease-in-out}@-webkit-keyframes one{0%{background-color:#00a4e7}100%{background-color:#fff}}@-webkit-keyframes two{0%{-webkit-box-shadow:#00a4e7 0 0 0 20px inset;box-shadow:#00a4e7 0 0 0 20px inset}100%{-webkit-box-shadow:#00a4e7 0 0 0 inset;box-shadow:#00a4e7 0 0 0 inset}}/*! + */@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,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right}.pull-left,.page-head h2.page-title{float:left}[class^="icon-"].pull-left,.page-head h2[class^="icon-"].page-title,[class*=" icon-"].pull-left,.page-head h2[class*=" icon-"].page-title{margin-right:.3em}[class^="icon-"].pull-right,#content h3:not(.modal-title) [class^="icon-"].panel-heading-action,#content .panel-heading [class^="icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].panel-heading-action,[class*=" icon-"].pull-right,#content h3:not(.modal-title) [class*=" icon-"].panel-heading-action,#content .panel-heading [class*=" icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].panel-heading-action{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-"],#header_infos .nav>.active>a>[class^="icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class^="icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class^="icon-"],.navbar-inverse #header_employee_box>.active>a>[class^="icon-"],#header_infos #header_employee_box>.active>a>[class^="icon-"],.navbar-inverse #header_quick>.active>a>[class^="icon-"],#header_infos #header_quick>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],#header_infos .nav>.active>a>[class*=" icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],.navbar-inverse #header_employee_box>.active>a>[class*=" icon-"],#header_infos #header_employee_box>.active>a>[class*=" icon-"],.navbar-inverse #header_quick>.active>a>[class*=" icon-"],#header_infos #header_quick>.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,#header_notifs_icon_wrapper [class^="icon-"].icon-large,#header_employee_box [class^="icon-"].icon-large,#header_quick [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large,#header_notifs_icon_wrapper [class*=" icon-"].icon-large,#header_employee_box [class*=" icon-"].icon-large,#header_quick [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .btn [class^="icon-"].data_value:before,.nav [class^="icon-"].icon-spin,#header_notifs_icon_wrapper [class^="icon-"].icon-spin,#header_employee_box [class^="icon-"].icon-spin,#header_quick [class^="icon-"].icon-spin,.nav #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .nav [class^="icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class^="icon-"].data_value:before,#header_employee_box #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_employee_box [class^="icon-"].data_value:before,#header_quick #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_quick [class^="icon-"].data_value:before,.btn [class*=" icon-"].icon-spin,.btn #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .btn [class*=" icon-"].data_value:before,.nav [class*=" icon-"].icon-spin,#header_notifs_icon_wrapper [class*=" icon-"].icon-spin,#header_employee_box [class*=" icon-"].icon-spin,#header_quick [class*=" icon-"].icon-spin,.nav #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .nav [class*=" icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class*=" icon-"].data_value:before,#header_employee_box #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_employee_box [class*=" icon-"].data_value:before,#header_quick #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_quick [class*=" icon-"].data_value:before{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn h2[class^="icon-"].icon-2x.page-title,.btn [class*=" icon-"].pull-left.icon-2x,.btn .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn h2[class*=" icon-"].icon-2x.page-title,.btn [class^="icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn [class*=" icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn #dashboard .loading [class^="icon-"].icon-large.data_value:before,#dashboard .loading .btn [class^="icon-"].icon-large.data_value:before,.btn [class*=" icon-"].icon-spin.icon-large,.btn #dashboard .loading [class*=" icon-"].icon-large.data_value:before,#dashboard .loading .btn [class*=" icon-"].icon-large.data_value:before{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class^="icon-"].icon-2x.page-title,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class*=" icon-"].icon-2x.page-title,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small [class*=" icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{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,#dashboard .loading .data_value:before{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,a #dashboard .loading .data_value:before,#dashboard .loading a .data_value:before{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,.process-icon-cancel: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,.icon-AdminAdmin:before,.process-icon-configure:before{content:"\f013"}.icon-trash:before,.process-icon-delete: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,.process-icon-save-date:before,.process-icon-save-status: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,.process-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,.icon-AdminPriceRule:before{content:"\f02c"}.icon-book:before,.icon-AdminCatalog: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,.process-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,.process-icon-newCombination.toolbar-new:before{content:"\f055"}.icon-minus-sign:before,.process-icon-newCombination.toolbar-cancel:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before,.process-icon-help:before,.process-icon-help-new: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,.process-icon-new-module: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,.process-icon-preview:before,.process-icon-previewURL: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,.icon-AdminParentStats:before,.process-icon-stats: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,.icon-AdminTools: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,.icon-AdminParentOrders: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,.process-icon-back: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,.icon-AdminParentLocalization:before{content:"\f0ac"}.icon-wrench:before,.icon-AdminParentPreferences: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,.icon-AdminParentCustomer: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,.process-icon-duplicate:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before,.process-icon-save:before,.process-icon-save-and-stay:before,.process-icon-save-and-preview: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,.icon-AdminParentShipping: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,.icon-AdminDashboard: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,.process-icon-partial_refund:before{content:"\f0ec"}.icon-cloud-download:before,.process-icon-export:before{content:"\f0ed"}.icon-cloud-upload:before,.process-icon-import: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,.process-icon-newAttributes:before,.process-icon-new:before,.process-icon-new-url: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,#nav-sidebar ul.menu li.maintab.expanded span.submenu_expand:before{content:"\f106"}.icon-angle-down:before,#nav-sidebar ul.menu li.maintab span.submenu_expand: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,.icon-AdminParentModules:before,.process-icon-modules-list: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,.process-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,.icon-AdminStock:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}html,body{min-height:100%;height:100%}#main{min-height:100%;padding:36px 0 60px;margin:0 0 -60px 0;background-color:#f8f8f8;background-image:url("../img/patterns/bedge_grunge.png")}#content{padding:80px 20px 0;margin-left:240px;-webkit-transition-property:margin;-moz-transition-property:margin;-o-transition-property:margin;transition-property:margin;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#content fieldset,#content .panel,#content #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #content .notifs_panel,#content #dash_version{padding:20px;margin-bottom:20px;border:solid 1px #dfdfdf;background-color:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset;box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset}#content h3:not(.modal-title),#content .panel-heading:not(.modal-title),#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title),#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title),#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{border:none;padding:0 5px;margin:-16px -16px 15px -16px;color:contrasted(#e6e8e3);font-size:1.2em;line-height:30px;font-weight:300;text-transform:uppercase;background-color:#fff;border-bottom:solid 1px #ccc}#content h3:not(.modal-title) i,#content .panel-heading:not(.modal-title) i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) i,#content h3:not(.modal-title) a,#content .panel-heading:not(.modal-title) a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) a,#content .panel-heading i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header i,#content .panel-heading a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header a{color:contrasted(#e6e8e3)}#content h3:not(.modal-title) .badge,#content .panel-heading:not(.modal-title) .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .badge,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content h3:not(.modal-title) .notifs_badge,#content .panel-heading:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading:not(.modal-title) .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .notifs_badge,#content .panel-heading .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .badge,#content .panel-heading #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_badge{background-color:#1ba6e5;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;height:29px;line-height:25px;font-size:1.3em;margin-right:7px;font-weight:300;float:left;margin-left:-5px}#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{margin-right:-5px}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn{float:left;height:30px;width:30px;color:#1ba6e5;border-left:solid 1px #ccc}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover{text-decoration:none;color:#000}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn i{text-align:center;font-size:1.3em;line-height:30px}#content .panel-danger .panel-heading,#content .panel-danger #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .panel-danger .notifs_panel_header{background-color:#8bc954 !important}#content form .alert,#content form #carrier_wizard .wizard_error,#carrier_wizard #content form .wizard_error{clear:both}@media (max-width: 768px){#content{margin-left:0;width:100%}}#nobootstrap{float:left}.data-focus.data-focus-primary{background-color:#1ba6e5;color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}#customer_part .customerCard.selected-customer .panel,#customer_part .customerCard.selected-customer #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #customer_part .customerCard.selected-customer .notifs_panel,#customer_part .customerCard.selected-customer #dash_version{color:#5cb85c;border:solid 2px #5cb85c}body.display-modal #content,body.display-modal #main{margin:0;padding:0;background:#f8f8f8}#content .panel .panel-footer,#content #header_notifs_icon_wrapper .notifs_panel .panel-footer,#header_notifs_icon_wrapper #content .notifs_panel .panel-footer,#content #dash_version .panel-footer,#header_notifs_icon_wrapper .notifs_panel #content .panel .notifs_panel_footer,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper #content .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #content #dash_version .notifs_panel_footer{margin:15px -20px -20px;height:73px}.panel-footer .btn.pull-right,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.pull-right,.panel-footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-footer .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action,.panel-footer #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action{margin-left:3px}.attributes-color-container{width:40px;height:25px;display:block;border:solid 1px #000}#header_infos{background-color:#242424}#header_shopname{font:300 1.3em/100% "Ubuntu",sans-serif;position:relative;padding:0 0 0 45px;margin:0 20px 0 0;height:37px;line-height:37px}#header_shopname img{position:absolute;top:0;left:0;width:37px;height:37px}#header_notifs_icon_wrapper li a{padding:9px 5px}#header_notifs_icon_wrapper>li>a>i{font-size:1.4em;color:#fff;vertical-align:middle}#header_notifs_icon_wrapper .notifs_badge{background-color:#8bc954}#header_notifs_icon_wrapper .notifs_dropdown{background-color:transparent;border:none;box-shadow:none}#header_notifs_icon_wrapper .notifs_panel{width:300px;-webkit-box-shadow:rgba(0,0,0,0.5) 2px 2px 8px;box-shadow:rgba(0,0,0,0.5) 2px 2px 8px}#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header h3,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_header{padding:0;font-size:1.3em;margin:0}#header_nav_toggle{background-color:#000;border:none;color:#fff}#header_employee_box a img{margin-right:5px}#header_employee_box #header_foaccess i{font-size:1.2em}#header_search{width:160px;padding:0 0 0 10px;position:relative}@media (max-width: 768px){#header_search{width:100%}}#header_search input,#header_search .form-group{margin:0}#header_search .form-group.focus-search{position:absolute;z-index:900;top:0;left:10px;width:400px}.employee_name{position:relative;padding-left:34px !important}.employee_avatar_small{height:30px;width:30px;display:inline-block;position:absolute;top:4px;left:0}.employee_avatar_small img{width:100%;height:100%;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}.employee_avatar{height:100px;width:100px;display:block;margin:10px auto 10px auto;overflow:hidden;-webkit-border-radius:120px;-moz-border-radius:120px;-ms-border-radius:120px;-o-border-radius:120px;border-radius:120px;-webkit-box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px;box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px}.employee_avatar img{width:100%;height:100%}#footer{z-index:600;display:block;width:100%;background-color:rgba(36,36,36,0.85);color:#888;position:fixed;bottom:0;height:50px;line-height:50px}#footer a{color:#ccc}#footer #go-top{position:fixed;bottom:10px;height:30px;width:30px;text-align:center;line-height:30px;right:10px;z-index:9003;display:block;padding:0px 6px 0px 6px;margin:-2px 0px 0px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;background-color:rgba(0,0,0,0.5)}#footer #go-top:hover{background-color:#000}#footer .social-networks{margin:4px 0 0 0}a.link-social i{font-size:2em;width:30px;height:30px;display:inline-block;line-height:30px;text-align:center;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}a.link-social:hover{text-decoration:none}.link-twitter i{color:#fff;background-color:#7cceef}.link-twitter i:hover{color:#7cceef;background-color:#fff}.link-facebook i{color:#fff;background-color:#557dbb}.link-facebook i:hover{color:#557dbb;background-color:#fff}.link-github i{color:#000;background-color:#fff}.link-github i:hover{color:#fff;background-color:#000}.link-google i{color:#fff;background-color:#e6644e}.link-google i:hover{color:#e6644e;background-color:#fff}#nav-sidebar{position:fixed;width:240px;height:100% !important;overflow-y:auto;z-index:500;background-color:#515561;border-right:1px solid #000}#nav-sidebar li.maintab>a>i{display:inline-block;height:30px;width:30px;font-size:20px;line-height:30px;color:#fff;text-align:center;-webkit-border-radius:40px;-moz-border-radius:40px;-ms-border-radius:40px;-o-border-radius:40px;border-radius:40px}#nav-sidebar li:not(.active) ul{display:none}#nav-sidebar li.active span.submenu_expand{display:none}#nav-sidebar ul.menu{margin:0 0 100px 0;padding:0;border-top:1px #000 solid;list-style:none}#nav-sidebar ul.menu li.maintab{position:relative}#nav-sidebar ul.menu li.maintab.active a.title,#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff;background-color:#1ba6e5}#nav-sidebar ul.menu li.maintab.active a.title i,#nav-sidebar ul.menu li.maintab.active a.title:hover i{color:#000;background-color:#fff}#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff}#nav-sidebar ul.menu li.maintab.expanded a.title{color:#fff;background-color:#3a3d45;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded a.title:hover{background-color:#686d7d}#nav-sidebar ul.menu li.maintab.expanded a.title i{color:#fff}#nav-sidebar ul.menu li.maintab.expanded ul.submenu{display:block}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a{color:#9da1ae;background-color:#2e3037;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a:hover{color:#fff;background-color:#454953}#nav-sidebar ul.menu li.maintab a.title{display:block;position:relative;padding:2px 0 2px 8px;border-bottom:1px solid #3a3d45;font-size:12px;line-height:28px;color:#cacccf;background-color:#515561;text-transform:uppercase;text-decoration:none;-webkit-transition-property:background-color,border,box-shadow;-moz-transition-property:background-color,border,box-shadow;-o-transition-property:background-color,border,box-shadow;transition-property:background-color,border,box-shadow;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title i{color:#9094a2;background-color:#17181c;-webkit-transition-property:color;-moz-transition-property:color;-o-transition-property:color;transition-property:color;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title:hover{background-color:#686d7d;color:#fff}#nav-sidebar ul.menu li.maintab a.title:hover i{color:#fff}#nav-sidebar ul.menu li.maintab span.submenu_expand{position:absolute;right:10px;top:2px;cursor:pointer;font-family:FontAwesome;font-size:24px;font-weight:100;color:#000;background-color:transparent;text-shadow:#686d7d 1px 1px 0}#nav-sidebar ul.menu li.maintab span.submenu_expand:hover{color:#fff;text-shadow:#232429 -1px -1px 0}#nav-sidebar ul.submenu{list-style:none;padding:0}#nav-sidebar ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;border:none;border-bottom:solid 1px #eee;background-color:#fff}#nav-sidebar ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-sidebar ul.submenu li:last-child a{border-bottom:none}#nav-sidebar ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}@media (max-width: 768px){#nav-sidebar{display:none}}#nav-topbar{position:fixed;height:28px;top:38px;left:80;width:100%;padding:0 40px 0 0;z-index:600;background-color:#fff}#nav-topbar ul.menu{margin:0;padding:0;display:block;list-style:none}#nav-topbar ul.menu li.maintab,#nav-topbar ul.menu li.subtab{height:28px;padding:0;margin:0;list-style:none;position:relative;float:left}#nav-topbar ul.menu li.maintab>a,#nav-topbar ul.menu li.subtab>a{display:block;line-height:30px;color:#515561;padding:0 6px;margin:0;font-size:12px}#nav-topbar ul.menu li.maintab>a i,#nav-topbar ul.menu li.subtab>a i{margin:0;width:15px;background-color:transparent;font-size:14px}#nav-topbar ul.menu li.maintab.active,#nav-topbar ul.menu li.maintab:hover,#nav-topbar ul.menu li.subtab.active,#nav-topbar ul.menu li.subtab:hover{background-color:#1ba6e5}#nav-topbar ul.menu li.maintab.active>a,#nav-topbar ul.menu li.maintab:hover>a,#nav-topbar ul.menu li.subtab.active>a,#nav-topbar ul.menu li.subtab:hover>a{text-decoration:none;color:#fff}#nav-topbar ul.menu li.maintab.active>a i,#nav-topbar ul.menu li.maintab:hover>a i,#nav-topbar ul.menu li.subtab.active>a i,#nav-topbar ul.menu li.subtab:hover>a i{color:#fff}#nav-topbar ul.menu li.expanded>ul.submenu{display:block}#nav-topbar ul.menu ul.submenu{background-color:#fff;-webkit-box-shadow:rgba(0,0,0,0.3) 0 2px 4px;box-shadow:rgba(0,0,0,0.3) 0 2px 4px;display:none;position:absolute;margin:0;padding:0;left:0;top:28px;width:200px !important}#nav-topbar ul.menu ul.submenu>li{width:200px;padding:0;list-style:none}#nav-topbar ul.menu ul.submenu>li>a{display:block;padding:4px 5px 4px 10px;font-size:12px;border-bottom:solid 1px #eee}#nav-topbar ul.menu ul.submenu>li>a:hover{color:#fff;background-color:#1ba6e5;text-decoration:none}#nav-topbar ul.menu ul.submenu>li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}#nav-topbar #ellipsistab{display:block;width:40px;height:28px;padding:0;margin:0;position:absolute;right:0}#nav-topbar #ellipsistab>a{text-align:center;font-size:15px;line-height:30px;color:#515561;cursor:pointer}#nav-topbar #ellipsistab ul#ellipsis_submenu{right:0;left:inherit}#nav-topbar #ellipsistab ul#ellipsis_submenu a.title{padding:0 8px;text-align:left}#nav-topbar #ellipsistab ul#ellipsis_submenu li.subtab.expanded>ul{left:-200px;top:0}#nav-topbar .menu-collapse{display:none}.menu-collapse{height:54px;width:100%;font-size:2em;text-align:center;line-height:55px;display:block;background-color:#515561;border-bottom:3px solid #3a3d45;color:#0b0c0e}.page-topbar #main{padding-top:64px}.page-topbar #nav-sidebar{display:none}.page-topbar .page-head{top:66px}.page-topbar #content{margin-left:0;width:100%}.page-topbar #content .page-head h2.page-title{padding:0 0 0 20px}.page-sidebar-closed #nav-sidebar{overflow:visible;width:50px;-webkit-transition-property:width;-moz-transition-property:width;-o-transition-property:width;transition-property:width;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-sidebar-closed #nav-sidebar span.title{display:none}.page-sidebar-closed #nav-sidebar ul.submenu{display:none !important;padding-top:37px;position:relative;top:0;-webkit-box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px;box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px}.page-sidebar-closed #nav-sidebar>ul>li:hover{width:250px !important;position:relative}.page-sidebar-closed #nav-sidebar>ul>li:hover span.title{display:inline-block}.page-sidebar-closed #nav-sidebar>ul>li:hover ul.submenu{display:block !important;position:absolute;left:50px;width:200px !important}.page-sidebar-closed #content{margin-left:50px}.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 70px}@media (max-width: 768px){.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 20px}}@media (max-width: 768px){.page-sidebar-closed #content{margin-left:0;width:100%}}.page-sidebar-closed .submenu_expand{display:none}[class^="icon-Admin"]{margin-right:6px}.fixed-width-xs{width:40px !important}.fixed-width-sm{width:80px !important}.fixed-width-md{width:120px !important}.fixed-width-lg{width:160px !important}.fixed-width-xl{width:200px !important}.fixed-width-xxl{width:250px !important}.row-margin-bottom{margin-bottom:15px}.row-padding-top{padding-top:15px}.thumbnail,.img-thumbnail,.thumbnail{background-color:#fff;border-color:#ccc !important}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{background-color:#8fc04d}#header_notifs_icon_wrapper .badge-success.notifs_badge,.badge-success.badge{background-color:#5cb85c}#header_notifs_icon_wrapper .badge-error.notifs_badge,.badge-error.badge{background-color:#d9534f}.nav-tabs{border-bottom:none}.nav-tabs li a{font-size:1.1em;font-family:"Ubuntu",sans-serif;text-transform:uppercase;font-weight:300}.nav-tabs li.active a,.nav-tabs li.active a:hover,.nav-tabs li.active a:focus{background-color:#fff}.alert.alert-danger,#carrier_wizard .wizard_error{padding-left:60px;position:relative}.alert.alert-danger:before,#carrier_wizard .wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00d"}.alert.alert-success,#carrier_wizard .alert-success.wizard_error{padding-left:60px;position:relative}.alert.alert-success:before,#carrier_wizard .alert-success.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00c"}.alert.alert-info,#carrier_wizard .alert-info.wizard_error{padding-left:60px;position:relative}.alert.alert-info:before,#carrier_wizard .alert-info.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\F05A"}.overflow-y{height:200px;overflow-y:auto}.table{border-collapse:separate;border-spacing:0 2px 0 0;margin-bottom:5px}.table thead>tr>th{border:none;font-weight:normal;vertical-align:top;border-bottom:solid 1px #8bc6e7}.table thead>tr>th span.title_box{color:#000;font-size:1.1em;font-weight:bold;display:block;word-wrap:nowrap;white-space:nowrap}.table thead>tr>th span.title_box.active{font-weight:bold}.table thead>tr>th span.title_box a{text-decoration:none}.table thead>tr>th span.title_box a.active{color:#000}.table input,.table select{margin:0}.table tbody>tr>td{border-top:none;background-color:#fff}.table tbody>tr>td{padding:3px 7px;vertical-align:middle;word-wrap:nowrap;font-size:12px;border-bottom:solid 1px #eee}.table td.center,.table th.center{text-align:center}.table td.pointer{cursor:pointer}tr.filter{background-color:#dfeff8}tr.filter input[type="text"].filter,tr.filter input[type="password"].filter,tr.filter select.filter{font-size:12px;border-color:#a0d0eb}tr.highlighted td{background-color:#1ba6e5 !important;color:#fff}td.actions{min-width:200px}.bulk-actions{margin:17px 0 0 0}.tree{padding:0 0 0 20px;list-style:none}.tree input{margin-right:4px}.tree i{font-size:1.3em}.tree .tree-item-name,.tree .tree-folder-name{padding:0 5px;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;font-weight:normal}.tree .tree-item-name:hover,.tree .tree-folder-name:hover{background-color:#eee;cursor:pointer}.tree .tree-selected{background-color:#a4dcf5}.tree .tree-selected i.tree-dot{background-color:#1ba6e5}.tree i.tree-dot{display:inline-block;position:relative;width:6px;height:6px;margin:0 4px 0 6px;background-color:#ccc;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.tree .tree-item-disable,.tree .tree-folder-name-disable{color:#ccc}.tree .tree-item-disable:hover,.tree .tree-folder-name-disable:hover{color:#ccc;background-color:none}.tree-actions{padding-bottom:4px;display:inline-block}.tree-panel-heading-controls{margin:-20px -20px 20px;padding:5px;border-bottom:solid 1px #dfdfdf}label.control-label{font-size:13px;font-weight:normal;color:#666}label.control-label span.label-tooltip{text-decoration:none;font-size:13px;background-color:#ebebeb;border:none;border-bottom:solid 1px #dfdfdf;padding:0 5px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}label.required:before{content:"*";color:red;font-size:14px;position:relative;line-height:12px}.tooltip{font-size:12px}select.input-tiny,input[type="text"].input-tiny,input[type="password"].input-tiny{width:80px;float:left}textarea{resize:none}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{background-color:#fefbe2;-webkit-box-shadow:none;box-shadow:none}.btn{text-transform:uppercase}.btn .caret{border-top-color:#333 !important}.btn:hover .caret,.btn:focus .caret{border-top-color:#fff !important}.btn.btn-default{-webkit-box-shadow:#e6e6e6 0 -2px 0 inset;box-shadow:#e6e6e6 0 -2px 0 inset}.btn.btn-default:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default:hover i{color:#fff}.btn.btn-primary{background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default[disabled]{border-color:#999;color:#999;background-color:#f2f2f2;-webkit-box-shadow:#ccc 0 -2px 0 inset;box-shadow:#ccc 0 -2px 0 inset}.dropdown-menu{text-align:left}.btn-group-action{width:160px;float:right}.btn-group-action .btn-group{float:right}.btn-group-action a{text-decoration:none}.tt-query{border-bottom-right-radius:3px !important;border-top-right-radius:3px !important}.tt-dropdown-menu{background-color:#fff;border:solid 1px #ccc;font-size:0.9em;text-transform:none}.tt-suggestions{padding:0 6px;-webkit-box-shadow:rgba(0,0,0,0.25) 0 1px 4px;box-shadow:rgba(0,0,0,0.25) 0 1px 4px}.tt-suggestion p{border-bottom:solid 1px #ccc;margin:0 !important;padding:0 !important}.tt-suggestion:last-child p{border-bottom:none}.tagify-container{background-color:#fff;padding:2px 6px;min-height:30px;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;border:solid 1px #ccc;-webkit-box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset;box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset}.tagify-container span{float:left}.tagify-container>span{display:inline-block;padding:3px 5px;margin:3px;border-radius:2px;border:1px solid #1ba6e5;background-color:#60c1ed;color:#fff}.tagify-container>span>a{padding-left:5px;color:#1ba6e5;text-decoration:none;font-weight:bold}.tagify-container>input{margin-top:2px;border:0 none;width:100px;-webkit-box-shadow:none;box-shadow:none}.tagify-container>input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.box-stats{background-color:#fff}.box-stats .boxchart-overlay{padding:10px 10px 5px 10px;margin-right:10px;float:left;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats i{float:left;height:64px;width:64px;margin-right:10px;color:#fff;font-size:35px;text-align:center;line-height:64px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats .title{color:#666;display:block}.box-stats .value{font-size:22px}.box-stats small{line-height:0.3em;color:#aaa;text-transform:uppercase}.box-stats:hover{text-decoration:none}.color1 i,.color1 .boxchart-overlay{background-color:#2ba8e3;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color1 .value{color:#2ba8e3}.color2 i,.color2 .boxchart-overlay{background-color:#ff5450;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color2 .value{color:#ff5450}.color3 i,.color3 .boxchart-overlay{background-color:#9e5ba1;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color3 .value{color:#9e5ba1}.color4 i,.color4 .boxchart-overlay{background-color:#95cc6b;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color4 .value{color:#95cc6b}.data_chart rect{fill:#fff}.data_chart path{stroke:#fff;stroke-width:2;fill:none}.data_chart line{stroke:#000}.data_chart .area{fill:rgba(255,255,255,0.3);stroke-width:0}.icon-big{font-size:4em;color:#c5c5c5}.switch .slide-button,.toggle p span{display:none}.switch{background-color:#d2d2d2;border-radius:3px}.switch label{padding:0;cursor:pointer}@media only screen{.toggle{position:relative;padding:0;margin-left:100px}.toggle label{position:relative;z-index:3;display:block;width:100%}.toggle input{position:absolute;opacity:0;z-index:5}.toggle p{position:absolute;left:-100px;width:100%;margin:0;padding-right:100px;text-align:left}.toggle p span{position:absolute;top:0;left:0;z-index:5;display:block;width:50%;margin-left:100px;text-align:center}.toggle:last-child{left:50%}.toggle .slide-button{position:absolute;right:0;top:0;z-index:4;display:block;width:50%;height:100%;padding:0}.switch{position:relative;padding:0}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center}.switch .slide-button{position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch.switch-three label,.switch.switch-three .slide-button{width:33.3%}.switch.switch-three input:checked:nth-of-type(2) ~ .slide-button{left:33.3%}.switch.switch-three input:checked:last-of-type ~ .slide-button{left:66.6%}.switch.switch-four label,.switch.switch-four .slide-button{width:25%}.switch.switch-four input:checked:nth-of-type(2) ~ .slide-button{left:25%}.switch.switch-four input:checked:nth-of-type(3) ~ .slide-button{left:50%}.switch.switch-four input:checked:last-of-type ~ .slide-button{left:75%}.switch.switch-five label,.switch.switch-five .slide-button{width:20%}.switch.switch-five input:checked:nth-of-type(2) ~ .slide-button{left:20%}.switch.switch-five input:checked:nth-of-type(3) ~ .slide-button{left:40%}.switch.switch-five input:checked:nth-of-type(4) ~ .slide-button{left:60%}.switch.switch-five input:checked:last-of-type ~ .slide-button{left:80%}.toggle,.switch{display:block;height:27px}.switch *,.toggle *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.switch .slide-button,.toggle .slide-button{display:block;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-ms-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.toggle label,.toggle p,.switch label{line-height:27px;vertical-align:middle}.toggle input:checked ~ .slide-button{right:50%}.toggle input:focus ~ .slide-button,.switch input:focus+label{outline:1px dotted #888}.switch,.toggle{-webkit-animation:bugfix infinite 1s}.prestashop-switch{min-width:150px;color:#666;text-align:center;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset;box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset}.prestashop-switch label{padding-top:0 !important;font-weight:500}.prestashop-switch input:checked+label{color:#333 !important;text-shadow:rgba(255,255,255,0.7) 1px 1px 0}.prestashop-switch input:not(:checked)+label i{color:#666 !important}.prestashop-switch .slide-button{position:relative;margin-right:3px;color:#fff}.prestashop-switch p{color:#333}.prestashop-switch span{color:#fff}}.page-head{width:100%;height:55px;padding:0 10px 0 0;margin:0;border-bottom:4px solid #75a139;position:fixed;top:36px;left:0px;z-index:499;background-color:#8fc04d;-webkit-box-shadow:rgba(0,0,0,0.15) 0 7px 0;box-shadow:rgba(0,0,0,0.15) 0 7px 0}.page-head h2.page-title{padding:0 0 0 260px;font-size:18px;color:#fff;text-transform:uppercase}@media (max-width: 768px){.page-head h2.page-title{padding:0 0 0 20px}}.page-head h2.page-title a{border-bottom:dotted 1px #fff}.page-head h2.page-title a:hover{color:#000;border-color:#000}.page-head a{color:#fff;text-decoration:none}.page-head .btn-toolbar{margin:0;padding:3px 0 0 0}.page-head .btn-toolbar .nav-tabs{margin:0}.page-head .btn-toolbar .nav-tabs>li>a{color:#333}.toolbar_btn{position:relative;padding:2px 5px !important;margin-right:3px;font-size:12px;font-weight:600;color:#fff;text-align:center;text-shadow:none}.toolbar_btn:hover{color:#8fc04d;border-color:#fff;background-color:#fff !important}[class^="process-icon-"],[class*=" process-icon-"]{height:25px;min-width:32px;background-position:center;background-repeat:no-repeat;display:block;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:25px;line-height:25px;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:0.3em}.page-header-toolbar-back{border:none !important;display:inline-block}#datepicker .input-selected{margin:0}#datepicker #date-start.input-selected,#datepicker #date-end.input-selected{border:solid 3px #00a4e7}#datepicker #date-start-compare.input-selected,#datepicker #date-end-compare.input-selected{border:solid 3px #ff8000}#datepicker div#datepicker-form #date-range{border:solid 1px #0092ce}#datepicker div#datepicker-form #date-range .form-date-heading{background-color:#0092ce}#datepicker div#datepicker-form #date-compare{border:solid 1px #e67300}#datepicker div#datepicker-form #date-compare .form-date-heading{background-color:#e67300}#datepicker div#datepicker-form .form-date-heading{height:30px;line-height:30px;padding:0 0 0 8px}#datepicker div#datepicker-form .form-date-heading .title,#datepicker div#datepicker-form .form-date-heading .checkbox-title label{font-size:1.15em;color:#fff;font-weight:200;text-transform:uppercase;line-height:2em}#datepicker div#datepicker-form .form-date-heading .btn-default{background-color:rgba(255,255,255,0.3);font-weight:700;color:#fff;border:none}#datepicker div#datepicker-form .form-date-heading select{margin:2px 2px 0 0}#datepicker div#datepicker-form .form-date-body,#datepicker div#datepicker-form .form-date-actions{width:100%;padding:10px;background-color:#fff;display:inline-block}#datepicker div#datepicker-form .form-date-actions{border:solid 1px #ccc}#datepicker div#datepicker-form .form-date-group{clear:both;width:100%;margin:0 auto 6px auto}#datepicker div#datepicker-form .form-date-group label{font-size:0.8em;font-weight:700;text-transform:uppercase;color:#666}#datepicker div#datepicker-form .form-date-group input{margin:4px 4px 0 0}#datepicker div#datepicker-form .form-date-group input[type='text']{width:35%}#datepicker div#datepicker-form .form-date-group button{margin:5px 0 0 0}#datepicker .daterangepicker{position:relative;margin:0 0 8px 0;width:100%;font-size:13px;border:solid 1px #ccc}#datepicker .daterangepicker table{width:100%;margin:0;border-spacing:1px}#datepicker .daterangepicker thead tr th{background-color:#0092ce;color:#fff;font-size:0.7em;height:1.5em;text-transform:uppercase}#datepicker .daterangepicker thead tr:first-child th{background-color:#fff;border-bottom:1px solid #0092ce;font-weight:200;font-size:1.4em;color:#00a4e7}#datepicker .daterangepicker td,#datepicker .daterangepicker th{text-align:center;padding:0;position:relative}#datepicker .daterangepicker tr{border-bottom:solid 1px #fff}#datepicker .daterangepicker td{color:#00a4e7;height:2.4em;padding:0 8px;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:0.2s;transition-duration:0.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#datepicker .daterangepicker td.day:after{content:"";position:absolute;display:block;top:0;left:0;width:100%;z-index:0;background-color:transparent}#datepicker .daterangepicker td.day:hover{cursor:pointer}#datepicker .daterangepicker td.day.disabled{color:#ccc}#datepicker .daterangepicker td.old,#datepicker .daterangepicker td.new{color:#ccc}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).range-compare{background-color:#4ca0b1;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare,#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).range-compare{background-color:#4ca0b1;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).end-selected-compare,#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare).range{background-color:#ba924c;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare).range{background-color:#ba924c;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected.start-selected{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#00a4e7}#datepicker .daterangepicker td.end-selected.start-selected.range-compare{background-color:#4ca0b1;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#ff8000}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare.range{background-color:#ba924c;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.range{color:#cef1ff;background-color:#1bbdff}#datepicker .daterangepicker td.range.range-compare{background-color:#8dab99}#datepicker .daterangepicker td.range-compare{color:#fff2e5;background-color:#f93}#datepicker .daterangepicker td.range-compare.range{background-color:#8dab99}#datepicker .daterangepicker td.today{background-color:#fff}#datepicker .daterangepicker td span{padding:0;display:block;width:33.333%;height:3em;line-height:3em;font-weight:400;float:left;text-transform:uppercase;cursor:pointer}#datepicker .daterangepicker td span:hover{color:#fff;background-color:#00a4e7}#datepicker .daterangepicker td span.active{background-color:#00a4e7;color:#fff}#datepicker .daterangepicker td span.old{color:#ccc}#datepicker .daterangepicker th.next{text-align:right;padding:0 10px 0 0}#datepicker .daterangepicker th.prev{text-align:left;padding:0 0 0 10px}#datepicker .daterangepicker th.next,#datepicker .daterangepicker th.prev,#datepicker .daterangepicker th.month-switch{font-size:1.3em;line-height:2em;height:2em}#datepicker .daterangepicker th.next:hover,#datepicker .daterangepicker th.prev:hover,#datepicker .daterangepicker th.month-switch:hover{background-color:#0092ce;color:#fff}#datepicker .daterangepicker thead tr:first-child th{cursor:pointer}.chevron-left,.chevron-right{position:relative}.chevron-left:before,.chevron-right:before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.chevron-left:before{right:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #00a4e7;background-color:#1bbdff}.chevron-right:before{left:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #1bbdff;background-color:#00a4e7}.input-complete{-webkit-animation:one 0.2s ease-in-out;-moz-animation:one 0.2s ease-in-out;-ms-animation:one 0.2s ease-in-out;-o-animation:one 0.2s ease-in-out;animation:one 0.2s ease-in-out}@-webkit-keyframes one{0%{background-color:#00a4e7}100%{background-color:#fff}}@-webkit-keyframes two{0%{-webkit-box-shadow:#00a4e7 0 0 0 20px inset;box-shadow:#00a4e7 0 0 0 20px inset}100%{-webkit-box-shadow:#00a4e7 0 0 0 inset;box-shadow:#00a4e7 0 0 0 inset}}/*! * Ladda * http://lab.hakim.se/ladda * MIT licensed diff --git a/admin-dev/themes/default/css/admin-theme/_admin-nav.sass b/admin-dev/themes/default/css/admin-theme/_admin-nav.sass index 494ee8567..a0ebbdfa2 100644 --- a/admin-dev/themes/default/css/admin-theme/_admin-nav.sass +++ b/admin-dev/themes/default/css/admin-theme/_admin-nav.sass @@ -129,32 +129,33 @@ top: 38px left: 80 width: 100% + padding: 0 40px 0 0 z-index: 600 background-color: white - border-bottom: solid 1px rgba(black,0.4) ul.menu margin: 0 padding: 0 display: block list-style: none - > li + li.maintab, li.subtab + height: 28px padding: 0 margin: 0 - border-right: solid 1px rgba(black,0.4) list-style: none position: relative float: left > a display: block - line-height: 28px + line-height: 30px color: $main-color padding: 0 6px margin: 0 + font-size: 12px i margin: 0 width: 15px background-color: transparent - font-size: 18px + font-size: 14px &.active, &:hover background-color: $brand-primary > a @@ -163,43 +164,63 @@ i color: white - .menu-collapse - display: none - ul.submenu - display: none!important - @include box-shadow(rgba(black,0.3) 0 2px 4px) - > ul.menu > li.expanded + li.expanded > ul.submenu + display: block ul.submenu - display: block!important - > ul.menu > li - ul.submenu - display: none!important + background-color: white + @include box-shadow(rgba(black,0.3) 0 2px 4px) + display: none position: absolute margin: 0 padding: 0 left: 0 top: 28px width: 200px!important - li + > li width: 200px padding: 0 list-style: none - a + > a display: block padding: 4px 5px 4px 10px font-size: 12px - background-color: white border-bottom: solid 1px #eee &:hover color: white background-color: $brand-primary text-decoration: none - &:last-child a - border-bottom: none &.active a color: contrast-color($brand-primary, white, #333, 10%) background-color: $brand-primary border-bottom: solid 1px darken($brand-primary,10%) + #ellipsistab + display: block + width: 40px + height: 28px + padding: 0 + margin: 0 + position: absolute + right: 0 + > a + text-align: center + font-size: 15px + line-height: 30px + color: $main-color + cursor: pointer + ul#ellipsis_submenu + right: 0 + left: inherit + a.title + padding: 0 8px + text-align: left + li.subtab.expanded > ul + left: -200px + top: 0 + .menu-collapse + display: none + + + .menu-collapse height: 54px diff --git a/admin-dev/themes/default/js/admin-theme.js b/admin-dev/themes/default/js/admin-theme.js index 4fbf3b363..b673c7c42 100755 --- a/admin-dev/themes/default/js/admin-theme.js +++ b/admin-dev/themes/default/js/admin-theme.js @@ -60,31 +60,44 @@ $( document ).ready(function() { $('span.submenu_expand').remove(); $('.expanded').removeClass('expanded'); - $('#nav-topbar').on('mouseenter', 'li.maintab.has_submenu', + // expand elements with submenu + $('#nav-topbar').on('mouseenter', 'li.has_submenu', function(){ $(this).addClass('expanded'); - }); - $('#nav-topbar').on('mouseleave', 'li.maintab.has_submenu', + }); + $('#nav-topbar').on('mouseleave', 'li.has_submenu', function(){ $(this).removeClass('expanded'); }); - //todo hide element over menu width on load - $('#nav-topbar').find('li.maintab').each( - function(){ + // hide element over menu width on load + $('#nav-topbar').find('li.maintab').each(function(){ + navEllipsis(); + }); + + //hide element over menu width on resize + $(window).on('resize', function() { + navEllipsis(); + }); + } + + function navEllipsis() { + var ellipsed = []; + $('#ellipsistab').remove(); + $('#nav-topbar ul.menu').find('li.maintab').each(function(){ + $(this).removeClass('hide'); if ($(this).position().top > 0) { + ellipsed.push($(this)); $(this).addClass('hide'); } }); + if (ellipsed.length > 0) { + $('#nav-topbar ul.menu').append('
  • '); + for (var i = 0; i < ellipsed.length; i++) { + $('#ellipsis_submenu').append('
  • '+ellipsed[i].html()+'
  • '); + } - //todo hide element over menu width on resize - $(window).on('resize', function() { - $('#nav-topbar ul.menu').find('li.maintab').each(function(){ - if ($(this).position().top > 0) { - $(this).addClass('hide'); - } - }); - }); + } } //nav switch From 9c499dc8a45978417880ca2b3bd11f04b1910046 Mon Sep 17 00:00:00 2001 From: Kevin Granger Date: Fri, 1 Nov 2013 16:28:21 +0100 Subject: [PATCH 206/247] // Placeholder instead of label for list filter date --- .../default/template/helpers/list/list_header.tpl | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/admin-dev/themes/default/template/helpers/list/list_header.tpl b/admin-dev/themes/default/template/helpers/list/list_header.tpl index 12ad778e2..572a259de 100644 --- a/admin-dev/themes/default/template/helpers/list/list_header.tpl +++ b/admin-dev/themes/default/template/helpers/list/list_header.tpl @@ -263,16 +263,14 @@ {elseif $params.type == 'date' || $params.type == 'datetime'}
    -
    - {l s='From'} - +
    +
    -
    - {l s='To'} - +
    + From 1bcb8d5c825744343a7b4fca3e8305da90722a4b Mon Sep 17 00:00:00 2001 From: Kevin Granger Date: Fri, 1 Nov 2013 16:44:55 +0100 Subject: [PATCH 207/247] // sass-bootstrap 3.0.1 update --- admin-dev/themes/default/css/admin-theme.css | 6 +++--- admin-dev/themes/default/css/admin-theme/_admin-nav.sass | 5 +---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/admin-dev/themes/default/css/admin-theme.css b/admin-dev/themes/default/css/admin-theme.css index d3507b6fc..2264a3b37 100644 --- a/admin-dev/themes/default/css/admin-theme.css +++ b/admin-dev/themes/default/css/admin-theme.css @@ -6,7 +6,7 @@ * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world by @mdo and @fat. - *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:0.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace, serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:2cm .5cm}p,h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{orphans:3;widows:3}h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{page-break-after:avoid}.navbar,#header_infos{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:12px;line-height:1.42857;color:#555;background-color:#515561}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#1ba6e5;text-decoration:none}a:hover,a:focus{color:#1275a1;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail,.thumbnail{padding:4px;line-height:1.42857;background-color:#515561;border:1px solid #ddd;border-radius:3px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:17px;margin-bottom:17px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 8.5px}.lead{margin-bottom:17px;font-size:13.8px;font-weight:200;line-height:1.4}@media (min-width: 768px){.lead{font-size:18px}}small{font-size:85%}cite{font-style:normal}.text-muted,.module_description,.hook_panel_header .hook_description{color:#999}.text-primary{color:#1ba6e5}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Ubuntu",sans-serif;font-weight:300;line-height:1.1}h1 small,h2 small,h3 small,#content .panel-heading small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{margin-top:17px;margin-bottom:8.5px}h4,h5,h6{margin-top:8.5px;margin-bottom:8.5px}h1,.h1{font-size:31px}h2,.h2{font-size:25px}h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header,.h3{font-size:21px}h4,.h4{font-size:15px}h5,.h5{font-size:12px}h6,.h6{font-size:11px}h1 small,.h1 small{font-size:21px}h2 small,.h2 small{font-size:15px}h3 small,#content .panel-heading small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header small,.h3 small,h4 small,.h4 small{font-size:12px}.page-header{padding-bottom:7.5px;margin:34px 0 17px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:8.5px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled,.list-inline,#dashboard .data_list_large,#dashboard .data_list_vertical{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:17px}dt,dd{line-height:1.42857}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:8.5px 17px;margin:0 0 17px;border-left:5px solid #eee}blockquote p{font-size:15px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right,#content h3:not(.modal-title) blockquote.panel-heading-action,#content .panel-heading blockquote.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,#content h3:not(.modal-title) blockquote.panel-heading-action p,#content .panel-heading blockquote.panel-heading-action p,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action p,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action p,blockquote.pull-right small,#content h3:not(.modal-title) blockquote.panel-heading-action small,#content .panel-heading blockquote.panel-heading-action small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action small{text-align:right}blockquote.pull-right small:before,#content h3:not(.modal-title) blockquote.panel-heading-action small:before,#content .panel-heading blockquote.panel-heading-action small:before,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action small:before,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action small:before{content:''}blockquote.pull-right small:after,#content h3:not(.modal-title) blockquote.panel-heading-action small:after,#content .panel-heading blockquote.panel-heading-action small:after,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action small:after,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:17px;font-style:normal;line-height:1.42857}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:3px}pre{display:block;padding:8px;margin:0 0 8.5px;font-size:11px;line-height:1.42857;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px}pre.prettyprint{margin-bottom:17px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:5px;padding-right:5px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.row,#dashboard .data_list_vertical{margin-left:-5px;margin-right:-5px}.row:before,#dashboard .data_list_vertical:before,.row:after,#dashboard .data_list_vertical:after{content:" ";display:table}.row:after,#dashboard .data_list_vertical:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,#dashboard .data_list_vertical li,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-left:5px;padding-right:5px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,#dashboard .data_list_vertical li,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.33333%}.col-xs-2{width:16.66667%}.col-xs-3{width:25%}.col-xs-4,#dashboard .data_list_vertical li{width:33.33333%}.col-xs-5{width:41.66667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333%}.col-xs-8{width:66.66667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333%}.col-xs-11{width:91.66667%}.col-xs-12{width:100%}@media (min-width: 768px){.container{max-width:728px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}.col-sm-push-1{left:8.33333%}.col-sm-push-2{left:16.66667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333%}.col-sm-push-5{left:41.66667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333%}.col-sm-push-8{left:66.66667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333%}.col-sm-push-11{left:91.66667%}.col-sm-pull-1{right:8.33333%}.col-sm-pull-2{right:16.66667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333%}.col-sm-pull-5{right:41.66667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333%}.col-sm-pull-8{right:66.66667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333%}.col-sm-pull-11{right:91.66667%}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}}@media (min-width: 992px){.container{max-width:940px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333%}.col-md-push-2{left:16.66667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333%}.col-md-push-5{left:41.66667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333%}.col-md-push-8{left:66.66667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333%}.col-md-push-11{left:91.66667%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333%}.col-md-pull-2{right:16.66667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333%}.col-md-pull-5{right:41.66667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333%}.col-md-pull-8{right:66.66667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333%}.col-md-pull-11{right:91.66667%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}}@media (min-width: 1200px){.container{max-width:1150px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333%}.col-lg-push-2{left:16.66667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333%}.col-lg-push-5{left:41.66667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333%}.col-lg-push-8{left:66.66667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333%}.col-lg-push-11{left:91.66667%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333%}.col-lg-pull-2{right:16.66667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333%}.col-lg-pull-5{right:41.66667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333%}.col-lg-pull-8{right:66.66667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333%}.col-lg-pull-11{right:91.66667%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:17px}.table thead>tr>th,.table thead>tr>td,.table tbody>tr>th,.table tbody>tr>td,.table tfoot>tr>th,.table tfoot>tr>td{padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#515561}.table-condensed thead>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>th,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>th,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th,.table>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th,.table>tbody>tr:hover>th{background-color:#e6e8e3}table col[class*="col-"]{float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#e6e8e3}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media (max-width: 768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:17px;font-size:18px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder,input[type="text"]:-moz-placeholder,input[type="search"]:-moz-placeholder,input[type="password"]:-moz-placeholder,textarea:-moz-placeholder,select:-moz-placeholder{color:#999}.form-control::-moz-placeholder,input[type="text"]::-moz-placeholder,input[type="search"]::-moz-placeholder,input[type="password"]::-moz-placeholder,textarea::-moz-placeholder,select::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder,input[type="text"]:-ms-input-placeholder,input[type="search"]:-ms-input-placeholder,input[type="password"]:-ms-input-placeholder,textarea:-ms-input-placeholder,select:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder,input[type="text"]::-webkit-input-placeholder,input[type="search"]::-webkit-input-placeholder,input[type="password"]::-webkit-input-placeholder,textarea::-webkit-input-placeholder,select::-webkit-input-placeholder{color:#999}.form-control,input[type="text"],input[type="search"],input[type="password"],textarea,select{display:block;width:100%;height:27px;padding:4px 8px;font-size:12px;line-height:1.42857;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus,input[type="text"]:focus,input[type="search"]:focus,input[type="password"]:focus,textarea:focus,select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],input[disabled][type="text"],input[disabled][type="search"],input[disabled][type="password"],textarea[disabled],select[disabled],.form-control[readonly],input[readonly][type="text"],input[readonly][type="search"],input[readonly][type="password"],textarea[readonly],select[readonly],fieldset[disabled] .form-control,fieldset[disabled] input[type="text"],fieldset[disabled] input[type="search"],fieldset[disabled] input[type="password"],fieldset[disabled] textarea,fieldset[disabled] select{cursor:not-allowed;background-color:#eee}textarea.form-control,textarea{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:17px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],fieldset[disabled] input[type="checkbox"],.radio[disabled],fieldset[disabled] .radio,.radio-inline[disabled],fieldset[disabled] .radio-inline,.checkbox[disabled],fieldset[disabled] .checkbox,.checkbox-inline[disabled],fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm,.input-group-sm>.form-control,.input-group-sm>input[type="text"],.input-group-sm>input[type="search"],.input-group-sm>input[type="password"],.input-group-sm>textarea,.input-group-sm>select,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:28px;line-height:28px}textarea.input-sm,.input-group-sm>textarea,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>input[type="text"],.input-group-lg>input[type="search"],.input-group-lg>input[type="password"],.input-group-lg>textarea,.input-group-lg>select,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:41px;padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:41px;line-height:41px}textarea.input-lg,.input-group-lg>textarea,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control,.has-warning input[type="text"],.has-warning input[type="search"],.has-warning input[type="password"],.has-warning textarea,.has-warning select{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus,.has-warning input[type="text"]:focus,.has-warning input[type="search"]:focus,.has-warning input[type="password"]:focus,.has-warning textarea:focus,.has-warning select:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control,.has-error input[type="text"],.has-error input[type="search"],.has-error input[type="password"],.has-error textarea,.has-error select{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus,.has-error input[type="text"]:focus,.has-error input[type="search"]:focus,.has-error input[type="password"]:focus,.has-error textarea:focus,.has-error select:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control,.has-success input[type="text"],.has-success input[type="search"],.has-success input[type="password"],.has-success textarea,.has-success select{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus,.has-success input[type="text"]:focus,.has-success input[type="search"]:focus,.has-success input[type="password"]:focus,.has-success textarea:focus,.has-success select:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0;padding-top:5px}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width: 768px){.form-inline .form-group,.navbar-form .form-group,#header_search .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.navbar-form .form-control,#header_search .form-control,.form-inline input[type="text"],.navbar-form input[type="text"],#header_search input[type="text"],.form-inline input[type="search"],.navbar-form input[type="search"],#header_search input[type="search"],.form-inline input[type="password"],.navbar-form input[type="password"],#header_search input[type="password"],.form-inline textarea,.navbar-form textarea,#header_search textarea,.form-inline select,.navbar-form select,#header_search select{display:inline-block}.form-inline .radio,.navbar-form .radio,#header_search .radio,.form-inline .checkbox,.navbar-form .checkbox,#header_search .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type="radio"],.navbar-form .radio input[type="radio"],#header_search .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.navbar-form .checkbox input[type="checkbox"],#header_search .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:5px}.form-horizontal .form-group{margin-left:-5px;margin-right:-5px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:4px 8px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#555;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#555;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active{color:#555;background-color:#ebebeb;border-color:#adadad}.open .btn-default.dropdown-toggle{color:#555;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active{background-image:none}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#555;background-color:#fff;border-color:#5cb85c}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active{color:#555;background-color:#ebebeb;border-color:#419641}.open .btn-primary.dropdown-toggle{color:#555;background-color:#ebebeb;border-color:#419641}.btn-primary:active,.btn-primary.active{background-image:none}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#fff;border-color:#5cb85c}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active{color:#fff;background-color:#ed9c28;border-color:#d58512}.open .btn-warning.dropdown-toggle{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active{background-image:none}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active{color:#fff;background-color:#d2322d;border-color:#ac2925}.open .btn-danger.dropdown-toggle{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active{background-image:none}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active{color:#fff;background-color:#47a447;border-color:#398439}.open .btn-success.dropdown-toggle{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active{background-image:none}.open .btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active{color:#fff;background-color:#39b3d7;border-color:#269abc}.open .btn-info.dropdown-toggle{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active{background-image:none}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#1ba6e5;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#1275a1;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn,.btn-xs,.btn-group-xs>.btn{padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;transition:height 0.35s ease}@font-face{font-family:'Glyphicons Halflings';src:url("../fonts/glyphicons-halflings-regular.eot");src:url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"),url("../fonts/glyphicons-halflings-regular.woff") format("woff"),url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"),url("../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular") format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:12px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right,#content h3:not(.modal-title) .dropdown-menu.panel-heading-action,#content .panel-heading .dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .dropdown-menu.panel-heading-action{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#fff;background-color:#1ba6e5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#1ba6e5}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.42857;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action>.dropdown-menu,#content .panel-heading .panel-heading-action>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.navbar-right .dropdown-menu,#header_employee_box .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#555}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#555}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified .btn{float:none;display:table-cell;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control,.input-group input[type="text"],.input-group input[type="search"],.input-group input[type="password"],.input-group textarea,.input-group select{width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control,.input-group input[type="text"],.input-group input[type="search"],.input-group input[type="password"],.input-group textarea,.input-group select{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child),.input-group input[type="text"]:not(:first-child):not(:last-child),.input-group input[type="search"]:not(:first-child):not(:last-child),.input-group input[type="password"]:not(:first-child):not(:last-child),.input-group textarea:not(:first-child):not(:last-child),.input-group select:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:4px 8px;font-size:12px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:3px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:11px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:15px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group input[type="text"]:first-child,.input-group input[type="search"]:first-child,.input-group input[type="password"]:first-child,.input-group textarea:first-child,.input-group select:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group input[type="text"]:last-child,.input-group input[type="search"]:last-child,.input-group input[type="password"]:last-child,.input-group textarea:last-child,.input-group select:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav,#header_notifs_icon_wrapper,#header_employee_box,#header_quick{margin-bottom:0;padding-left:0;list-style:none}.nav:before,#header_notifs_icon_wrapper:before,#header_employee_box:before,#header_quick:before,.nav:after,#header_notifs_icon_wrapper:after,#header_employee_box:after,#header_quick:after{content:" ";display:table}.nav:after,#header_notifs_icon_wrapper:after,#header_employee_box:after,#header_quick:after{clear:both}.nav>li,#header_notifs_icon_wrapper>li,#header_employee_box>li,#header_quick>li{position:relative;display:block}.nav>li>a,#header_notifs_icon_wrapper>li>a,#header_employee_box>li>a,#header_quick>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,#header_notifs_icon_wrapper>li>a:hover,#header_employee_box>li>a:hover,#header_quick>li>a:hover,.nav>li>a:focus,#header_notifs_icon_wrapper>li>a:focus,#header_employee_box>li>a:focus,#header_quick>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a,#header_notifs_icon_wrapper>li.disabled>a,#header_employee_box>li.disabled>a,#header_quick>li.disabled>a{color:#999}.nav>li.disabled>a:hover,#header_notifs_icon_wrapper>li.disabled>a:hover,#header_employee_box>li.disabled>a:hover,#header_quick>li.disabled>a:hover,.nav>li.disabled>a:focus,#header_notifs_icon_wrapper>li.disabled>a:focus,#header_employee_box>li.disabled>a:focus,#header_quick>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,#header_notifs_icon_wrapper .open>a,#header_employee_box .open>a,#header_quick .open>a,.nav .open>a:hover,#header_notifs_icon_wrapper .open>a:hover,#header_employee_box .open>a:hover,#header_quick .open>a:hover,.nav .open>a:focus,#header_notifs_icon_wrapper .open>a:focus,#header_employee_box .open>a:focus,#header_quick .open>a:focus{background-color:#eee;border-color:#1ba6e5}.nav .nav-divider,#header_notifs_icon_wrapper .nav-divider,#header_employee_box .nav-divider,#header_quick .nav-divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img,#header_notifs_icon_wrapper>li>a>img,#header_employee_box>li>a>img,#header_quick>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857;border:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#515561;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#1ba6e5}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center}@media (min-width: 768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;margin-right:0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a{border-bottom-color:#515561}.tabbable:before,.tabbable:after{content:" ";display:table}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret,#header_notifs_icon_wrapper .caret,#header_employee_box .caret,#header_quick .caret{border-top-color:#1ba6e5;border-bottom-color:#1ba6e5}.nav a:hover .caret,#header_notifs_icon_wrapper a:hover .caret,#header_employee_box a:hover .caret,#header_quick a:hover .caret{border-top-color:#1275a1;border-bottom-color:#1275a1}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar,#header_infos{position:relative;z-index:1000;min-height:35px;margin-bottom:17px;border:1px solid transparent}.navbar:before,#header_infos:before,.navbar:after,#header_infos:after{content:" ";display:table}.navbar:after,#header_infos:after{clear:both}@media (min-width: 768px){.navbar,#header_infos{border-radius:3px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:5px;padding-left:5px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child,.navbar-collapse .navbar-left#header_notifs_icon_wrapper:first-child,.navbar-collapse .navbar-left#header_employee_box:first-child,.navbar-collapse .navbar-nav#header_search:first-child,.navbar-collapse #header_quick:first-child{margin-left:-5px}.navbar-collapse .navbar-nav.navbar-right:last-child,.navbar-collapse .navbar-right#header_notifs_icon_wrapper:last-child,.navbar-collapse #header_employee_box:last-child,.navbar-collapse .navbar-right#header_quick:last-child{margin-right:-5px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-5px;margin-left:-5px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,#header_infos,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width: 768px){.navbar-fixed-top,#header_infos,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top,#header_infos{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand,#header_shopname{float:left;padding:9px 5px;font-size:15px;line-height:17px}.navbar-brand:hover,#header_shopname:hover,.navbar-brand:focus,#header_shopname:focus{text-decoration:none}@media (min-width: 768px){.navbar>.container .navbar-brand,#header_infos>.container .navbar-brand,.navbar>.container #header_shopname,#header_infos>.container #header_shopname{margin-left:-5px}}.navbar-toggle{position:relative;float:right;margin-right:5px;padding:9px 10px;margin-top:0.5px;margin-bottom:0.5px;background-color:transparent;border:1px solid transparent;border-radius:3px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav,#header_notifs_icon_wrapper,#header_employee_box,#header_quick{margin:4.5px -5px}.navbar-nav>li>a,#header_notifs_icon_wrapper>li>a,#header_employee_box>li>a,#header_quick>li>a{padding-top:10px;padding-bottom:10px;line-height:17px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu,#header_notifs_icon_wrapper .open .dropdown-menu,#header_employee_box .open .dropdown-menu,#header_quick .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,#header_notifs_icon_wrapper .open .dropdown-menu>li>a,#header_employee_box .open .dropdown-menu>li>a,#header_quick .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header,#header_notifs_icon_wrapper .open .dropdown-menu .dropdown-header,#header_employee_box .open .dropdown-menu .dropdown-header,#header_quick .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a,#header_notifs_icon_wrapper .open .dropdown-menu>li>a,#header_employee_box .open .dropdown-menu>li>a,#header_quick .open .dropdown-menu>li>a{line-height:17px}.navbar-nav .open .dropdown-menu>li>a:hover,#header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,#header_employee_box .open .dropdown-menu>li>a:hover,#header_quick .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus,#header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,#header_employee_box .open .dropdown-menu>li>a:focus,#header_quick .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav,#header_notifs_icon_wrapper,#header_employee_box,#header_quick{float:left;margin:0}.navbar-nav>li,#header_notifs_icon_wrapper>li,#header_employee_box>li,#header_quick>li{float:left}.navbar-nav>li>a,#header_notifs_icon_wrapper>li>a,#header_employee_box>li>a,#header_quick>li>a{padding-top:9px;padding-bottom:9px}}@media (min-width: 768px){.navbar-left,#header_search,#header_quick{float:left !important}.navbar-right,#header_employee_box{float:right !important}}.navbar-form,#header_search{margin-left:-5px;margin-right:-5px;padding:10px 5px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:4px;margin-bottom:4px}@media (max-width: 767px){.navbar-form .form-group,#header_search .form-group{margin-bottom:5px}}@media (min-width: 768px){.navbar-form,#header_search{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu,#header_notifs_icon_wrapper>li>.dropdown-menu,#header_employee_box>li>.dropdown-menu,#header_quick>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu,.navbar-fixed-bottom #header_notifs_icon_wrapper>li>.dropdown-menu,.navbar-fixed-bottom #header_employee_box>li>.dropdown-menu,.navbar-fixed-bottom #header_quick>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,#content h3:not(.modal-title) .navbar-nav.panel-heading-action>li>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action#header_employee_box>li>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action#header_quick>li>.dropdown-menu,#content .panel-heading .navbar-nav.panel-heading-action>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .navbar-nav.panel-heading-action>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .navbar-nav.panel-heading-action>li>.dropdown-menu,#content .panel-heading .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#content .panel-heading .panel-heading-action#header_employee_box>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action#header_employee_box>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action#header_employee_box>li>.dropdown-menu,#content .panel-heading .panel-heading-action#header_quick>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action#header_quick>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action#header_quick>li>.dropdown-menu,.pull-right#header_notifs_icon_wrapper>li>.dropdown-menu,.pull-right#header_employee_box>li>.dropdown-menu,.pull-right#header_quick>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right,#header_notifs_icon_wrapper>li>.dropdown-menu.pull-right,#header_employee_box>li>.dropdown-menu.pull-right,#header_quick>li>.dropdown-menu.pull-right,#content h3:not(.modal-title) .navbar-nav>li>.dropdown-menu.panel-heading-action,#content h3:not(.modal-title) #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#content h3:not(.modal-title) #header_employee_box>li>.dropdown-menu.panel-heading-action,#content h3:not(.modal-title) #header_quick>li>.dropdown-menu.panel-heading-action,#content .panel-heading .navbar-nav>li>.dropdown-menu.panel-heading-action,#content .panel-heading #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#content .panel-heading #header_employee_box>li>.dropdown-menu.panel-heading-action,#content .panel-heading #header_quick>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .navbar-nav>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #header_employee_box>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #header_quick>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .navbar-nav>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header #header_employee_box>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header #header_quick>li>.dropdown-menu.panel-heading-action{left:auto;right:0}.navbar-btn{margin-top:4px;margin-bottom:4px}.navbar-text{float:left;margin-top:9px;margin-bottom:9px}@media (min-width: 768px){.navbar-text{margin-left:5px;margin-right:5px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand,.navbar-default #header_shopname{color:#777}.navbar-default .navbar-brand:hover,.navbar-default #header_shopname:hover,.navbar-default .navbar-brand:focus,.navbar-default #header_shopname:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a,.navbar-default #header_notifs_icon_wrapper>li>a,.navbar-default #header_employee_box>li>a,.navbar-default #header_quick>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default #header_notifs_icon_wrapper>li>a:hover,.navbar-default #header_employee_box>li>a:hover,.navbar-default #header_quick>li>a:hover,.navbar-default .navbar-nav>li>a:focus,.navbar-default #header_notifs_icon_wrapper>li>a:focus,.navbar-default #header_employee_box>li>a:focus,.navbar-default #header_quick>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default #header_notifs_icon_wrapper>.active>a,.navbar-default #header_employee_box>.active>a,.navbar-default #header_quick>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default #header_notifs_icon_wrapper>.active>a:hover,.navbar-default #header_employee_box>.active>a:hover,.navbar-default #header_quick>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus,.navbar-default #header_notifs_icon_wrapper>.active>a:focus,.navbar-default #header_employee_box>.active>a:focus,.navbar-default #header_quick>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default #header_notifs_icon_wrapper>.disabled>a,.navbar-default #header_employee_box>.disabled>a,.navbar-default #header_quick>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default #header_notifs_icon_wrapper>.disabled>a:hover,.navbar-default #header_employee_box>.disabled>a:hover,.navbar-default #header_quick>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default #header_notifs_icon_wrapper>.disabled>a:focus,.navbar-default #header_employee_box>.disabled>a:focus,.navbar-default #header_quick>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form,.navbar-default #header_search{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default #header_notifs_icon_wrapper>.dropdown>a:hover .caret,.navbar-default #header_employee_box>.dropdown>a:hover .caret,.navbar-default #header_quick>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default #header_notifs_icon_wrapper>.dropdown>a:focus .caret,.navbar-default #header_employee_box>.dropdown>a:focus .caret,.navbar-default #header_quick>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default #header_notifs_icon_wrapper>.open>a,.navbar-default #header_employee_box>.open>a,.navbar-default #header_quick>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default #header_notifs_icon_wrapper>.open>a:hover,.navbar-default #header_employee_box>.open>a:hover,.navbar-default #header_quick>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus,.navbar-default #header_notifs_icon_wrapper>.open>a:focus,.navbar-default #header_employee_box>.open>a:focus,.navbar-default #header_quick>.open>a:focus{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default #header_notifs_icon_wrapper>.open>a .caret,.navbar-default #header_employee_box>.open>a .caret,.navbar-default #header_quick>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default #header_notifs_icon_wrapper>.open>a:hover .caret,.navbar-default #header_employee_box>.open>a:hover .caret,.navbar-default #header_quick>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default #header_notifs_icon_wrapper>.open>a:focus .caret,.navbar-default #header_employee_box>.open>a:focus .caret,.navbar-default #header_quick>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret,.navbar-default #header_notifs_icon_wrapper>.dropdown>a .caret,.navbar-default #header_employee_box>.dropdown>a .caret,.navbar-default #header_quick>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a,.navbar-default #header_employee_box .open .dropdown-menu>li>a,.navbar-default #header_quick .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,.navbar-default #header_employee_box .open .dropdown-menu>li>a:hover,.navbar-default #header_quick .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,.navbar-default #header_employee_box .open .dropdown-menu>li>a:focus,.navbar-default #header_quick .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a,.navbar-default #header_employee_box .open .dropdown-menu>.active>a,.navbar-default #header_quick .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:hover,.navbar-default #header_employee_box .open .dropdown-menu>.active>a:hover,.navbar-default #header_quick .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:focus,.navbar-default #header_employee_box .open .dropdown-menu>.active>a:focus,.navbar-default #header_quick .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a,.navbar-default #header_employee_box .open .dropdown-menu>.disabled>a,.navbar-default #header_quick .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:hover,.navbar-default #header_employee_box .open .dropdown-menu>.disabled>a:hover,.navbar-default #header_quick .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:focus,.navbar-default #header_employee_box .open .dropdown-menu>.disabled>a:focus,.navbar-default #header_quick .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse,#header_infos{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand,#header_infos .navbar-brand,.navbar-inverse #header_shopname,#header_infos #header_shopname{color:#999}.navbar-inverse .navbar-brand:hover,#header_infos .navbar-brand:hover,.navbar-inverse #header_shopname:hover,#header_infos #header_shopname:hover,.navbar-inverse .navbar-brand:focus,#header_infos .navbar-brand:focus,.navbar-inverse #header_shopname:focus,#header_infos #header_shopname:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text,#header_infos .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a,#header_infos .navbar-nav>li>a,.navbar-inverse #header_notifs_icon_wrapper>li>a,#header_infos #header_notifs_icon_wrapper>li>a,.navbar-inverse #header_employee_box>li>a,#header_infos #header_employee_box>li>a,.navbar-inverse #header_quick>li>a,#header_infos #header_quick>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,#header_infos .navbar-nav>li>a:hover,.navbar-inverse #header_notifs_icon_wrapper>li>a:hover,#header_infos #header_notifs_icon_wrapper>li>a:hover,.navbar-inverse #header_employee_box>li>a:hover,#header_infos #header_employee_box>li>a:hover,.navbar-inverse #header_quick>li>a:hover,#header_infos #header_quick>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus,#header_infos .navbar-nav>li>a:focus,.navbar-inverse #header_notifs_icon_wrapper>li>a:focus,#header_infos #header_notifs_icon_wrapper>li>a:focus,.navbar-inverse #header_employee_box>li>a:focus,#header_infos #header_employee_box>li>a:focus,.navbar-inverse #header_quick>li>a:focus,#header_infos #header_quick>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,#header_infos .navbar-nav>.active>a,.navbar-inverse #header_notifs_icon_wrapper>.active>a,#header_infos #header_notifs_icon_wrapper>.active>a,.navbar-inverse #header_employee_box>.active>a,#header_infos #header_employee_box>.active>a,.navbar-inverse #header_quick>.active>a,#header_infos #header_quick>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,#header_infos .navbar-nav>.active>a:hover,.navbar-inverse #header_notifs_icon_wrapper>.active>a:hover,#header_infos #header_notifs_icon_wrapper>.active>a:hover,.navbar-inverse #header_employee_box>.active>a:hover,#header_infos #header_employee_box>.active>a:hover,.navbar-inverse #header_quick>.active>a:hover,#header_infos #header_quick>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus,#header_infos .navbar-nav>.active>a:focus,.navbar-inverse #header_notifs_icon_wrapper>.active>a:focus,#header_infos #header_notifs_icon_wrapper>.active>a:focus,.navbar-inverse #header_employee_box>.active>a:focus,#header_infos #header_employee_box>.active>a:focus,.navbar-inverse #header_quick>.active>a:focus,#header_infos #header_quick>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,#header_infos .navbar-nav>.disabled>a,.navbar-inverse #header_notifs_icon_wrapper>.disabled>a,#header_infos #header_notifs_icon_wrapper>.disabled>a,.navbar-inverse #header_employee_box>.disabled>a,#header_infos #header_employee_box>.disabled>a,.navbar-inverse #header_quick>.disabled>a,#header_infos #header_quick>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,#header_infos .navbar-nav>.disabled>a:hover,.navbar-inverse #header_notifs_icon_wrapper>.disabled>a:hover,#header_infos #header_notifs_icon_wrapper>.disabled>a:hover,.navbar-inverse #header_employee_box>.disabled>a:hover,#header_infos #header_employee_box>.disabled>a:hover,.navbar-inverse #header_quick>.disabled>a:hover,#header_infos #header_quick>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus,#header_infos .navbar-nav>.disabled>a:focus,.navbar-inverse #header_notifs_icon_wrapper>.disabled>a:focus,#header_infos #header_notifs_icon_wrapper>.disabled>a:focus,.navbar-inverse #header_employee_box>.disabled>a:focus,#header_infos #header_employee_box>.disabled>a:focus,.navbar-inverse #header_quick>.disabled>a:focus,#header_infos #header_quick>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle,#header_infos .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,#header_infos .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus,#header_infos .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar,#header_infos .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,#header_infos .navbar-collapse,.navbar-inverse .navbar-form,#header_infos .navbar-form,.navbar-inverse #header_search,#header_infos #header_search{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,#header_infos .navbar-nav>.open>a,.navbar-inverse #header_notifs_icon_wrapper>.open>a,#header_infos #header_notifs_icon_wrapper>.open>a,.navbar-inverse #header_employee_box>.open>a,#header_infos #header_employee_box>.open>a,.navbar-inverse #header_quick>.open>a,#header_infos #header_quick>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,#header_infos .navbar-nav>.open>a:hover,.navbar-inverse #header_notifs_icon_wrapper>.open>a:hover,#header_infos #header_notifs_icon_wrapper>.open>a:hover,.navbar-inverse #header_employee_box>.open>a:hover,#header_infos #header_employee_box>.open>a:hover,.navbar-inverse #header_quick>.open>a:hover,#header_infos #header_quick>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus,#header_infos .navbar-nav>.open>a:focus,.navbar-inverse #header_notifs_icon_wrapper>.open>a:focus,#header_infos #header_notifs_icon_wrapper>.open>a:focus,.navbar-inverse #header_employee_box>.open>a:focus,#header_infos #header_employee_box>.open>a:focus,.navbar-inverse #header_quick>.open>a:focus,#header_infos #header_quick>.open>a:focus{background-color:#090909;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret,#header_infos .navbar-nav>.dropdown>a:hover .caret,.navbar-inverse #header_notifs_icon_wrapper>.dropdown>a:hover .caret,#header_infos #header_notifs_icon_wrapper>.dropdown>a:hover .caret,.navbar-inverse #header_employee_box>.dropdown>a:hover .caret,#header_infos #header_employee_box>.dropdown>a:hover .caret,.navbar-inverse #header_quick>.dropdown>a:hover .caret,#header_infos #header_quick>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret,#header_infos .navbar-nav>.dropdown>a .caret,.navbar-inverse #header_notifs_icon_wrapper>.dropdown>a .caret,#header_infos #header_notifs_icon_wrapper>.dropdown>a .caret,.navbar-inverse #header_employee_box>.dropdown>a .caret,#header_infos #header_employee_box>.dropdown>a .caret,.navbar-inverse #header_quick>.dropdown>a .caret,#header_infos #header_quick>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,#header_infos .navbar-nav>.open>a .caret,.navbar-inverse #header_notifs_icon_wrapper>.open>a .caret,#header_infos #header_notifs_icon_wrapper>.open>a .caret,.navbar-inverse #header_employee_box>.open>a .caret,#header_infos #header_employee_box>.open>a .caret,.navbar-inverse #header_quick>.open>a .caret,#header_infos #header_quick>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,#header_infos .navbar-nav>.open>a:hover .caret,.navbar-inverse #header_notifs_icon_wrapper>.open>a:hover .caret,#header_infos #header_notifs_icon_wrapper>.open>a:hover .caret,.navbar-inverse #header_employee_box>.open>a:hover .caret,#header_infos #header_employee_box>.open>a:hover .caret,.navbar-inverse #header_quick>.open>a:hover .caret,#header_infos #header_quick>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,#header_infos .navbar-nav>.open>a:focus .caret,.navbar-inverse #header_notifs_icon_wrapper>.open>a:focus .caret,#header_infos #header_notifs_icon_wrapper>.open>a:focus .caret,.navbar-inverse #header_employee_box>.open>a:focus .caret,#header_infos #header_employee_box>.open>a:focus .caret,.navbar-inverse #header_quick>.open>a:focus .caret,#header_infos #header_quick>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header,#header_infos .navbar-nav .open .dropdown-menu>.dropdown-header,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.dropdown-header,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.dropdown-header,.navbar-inverse #header_employee_box .open .dropdown-menu>.dropdown-header,#header_infos #header_employee_box .open .dropdown-menu>.dropdown-header,.navbar-inverse #header_quick .open .dropdown-menu>.dropdown-header,#header_infos #header_quick .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a,#header_infos .navbar-nav .open .dropdown-menu>li>a,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>li>a,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>li>a,.navbar-inverse #header_employee_box .open .dropdown-menu>li>a,#header_infos #header_employee_box .open .dropdown-menu>li>a,.navbar-inverse #header_quick .open .dropdown-menu>li>a,#header_infos #header_quick .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,#header_infos .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,.navbar-inverse #header_employee_box .open .dropdown-menu>li>a:hover,#header_infos #header_employee_box .open .dropdown-menu>li>a:hover,.navbar-inverse #header_quick .open .dropdown-menu>li>a:hover,#header_infos #header_quick .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,#header_infos .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,.navbar-inverse #header_employee_box .open .dropdown-menu>li>a:focus,#header_infos #header_employee_box .open .dropdown-menu>li>a:focus,.navbar-inverse #header_quick .open .dropdown-menu>li>a:focus,#header_infos #header_quick .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,#header_infos .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.active>a,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.active>a,.navbar-inverse #header_employee_box .open .dropdown-menu>.active>a,#header_infos #header_employee_box .open .dropdown-menu>.active>a,.navbar-inverse #header_quick .open .dropdown-menu>.active>a,#header_infos #header_quick .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,#header_infos .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:hover,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:hover,.navbar-inverse #header_employee_box .open .dropdown-menu>.active>a:hover,#header_infos #header_employee_box .open .dropdown-menu>.active>a:hover,.navbar-inverse #header_quick .open .dropdown-menu>.active>a:hover,#header_infos #header_quick .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,#header_infos .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:focus,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:focus,.navbar-inverse #header_employee_box .open .dropdown-menu>.active>a:focus,#header_infos #header_employee_box .open .dropdown-menu>.active>a:focus,.navbar-inverse #header_quick .open .dropdown-menu>.active>a:focus,#header_infos #header_quick .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,#header_infos .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a,.navbar-inverse #header_employee_box .open .dropdown-menu>.disabled>a,#header_infos #header_employee_box .open .dropdown-menu>.disabled>a,.navbar-inverse #header_quick .open .dropdown-menu>.disabled>a,#header_infos #header_quick .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,#header_infos .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:hover,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:hover,.navbar-inverse #header_employee_box .open .dropdown-menu>.disabled>a:hover,#header_infos #header_employee_box .open .dropdown-menu>.disabled>a:hover,.navbar-inverse #header_quick .open .dropdown-menu>.disabled>a:hover,#header_infos #header_quick .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,#header_infos .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:focus,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:focus,.navbar-inverse #header_employee_box .open .dropdown-menu>.disabled>a:focus,#header_infos #header_employee_box .open .dropdown-menu>.disabled>a:focus,.navbar-inverse #header_quick .open .dropdown-menu>.disabled>a:focus,#header_infos #header_quick .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link,#header_infos .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,#header_infos .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:17px;list-style:none;background-color:#f5f5f5;border-radius:3px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:17px 0;border-radius:3px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:4px 8px;line-height:1.42857;text-decoration:none;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#1ba6e5;border-color:#1ba6e5;cursor:default}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:15px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:11px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:17px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#1ba6e5}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#1585b8}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty,#header_notifs_icon_wrapper .notifs_badge:empty{display:none}a.badge:hover,#header_notifs_icon_wrapper a.notifs_badge:hover,a.badge:focus,#header_notifs_icon_wrapper a.notifs_badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge,.btn #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .btn .notifs_badge{position:relative;top:-1px}a.list-group-item.active>.badge,#header_notifs_icon_wrapper a.list-group-item.active>.notifs_badge,.nav-pills>.active>a>.badge,#header_notifs_icon_wrapper .nav-pills>.active>a>.notifs_badge{color:#1ba6e5;background-color:#fff}.nav-pills>li>a>.badge,#header_notifs_icon_wrapper .nav-pills>li>a>.notifs_badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:2.14286;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width: 768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1{font-size:54px}}.thumbnail{display:block}.thumbnail>img{display:block;max-width:100%;height:auto}a.thumbnail:hover,a.thumbnail:focus{border-color:#1ba6e5}.thumbnail>img{margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#555}.alert,#carrier_wizard .wizard_error{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px}.alert h4,#carrier_wizard .wizard_error h4{margin-top:0;color:inherit}.alert .alert-link,#carrier_wizard .wizard_error .alert-link{font-weight:bold}.alert>p,#carrier_wizard .wizard_error>p,.alert>ul,#carrier_wizard .wizard_error>ul{margin-bottom:0}.alert>p+p,#carrier_wizard .wizard_error>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger,#carrier_wizard .wizard_error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr,#carrier_wizard .wizard_error hr{border-top-color:#e6c1c7}.alert-danger .alert-link,#carrier_wizard .wizard_error .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:17px;margin-bottom:17px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:11px;color:#fff;text-align:center;background-color:#1ba6e5;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left,.page-head .media>h2.page-title{margin-right:10px}.media>.pull-right,#content h3:not(.modal-title) .media>.panel-heading-action,#content .panel-heading .media>.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .media>.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .media>.panel-heading-action{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group,#dashboard .data_list{margin-bottom:20px;padding-left:0}.list-group-item,#dashboard .data_list li{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child,#dashboard .data_list li:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child,#dashboard .data_list li:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.list-group-item>.badge,#dashboard .data_list li>.badge,#header_notifs_icon_wrapper .list-group-item>.notifs_badge,#dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge,#header_notifs_icon_wrapper #dashboard .data_list li>.notifs_badge{float:right}.list-group-item>.badge+.badge,#dashboard .data_list li>.badge+.badge,#header_notifs_icon_wrapper .list-group-item>.notifs_badge+.badge,#dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.badge,#header_notifs_icon_wrapper #dashboard .data_list li>.notifs_badge+.badge,#header_notifs_icon_wrapper .list-group-item>.badge+.notifs_badge,#dashboard .data_list #header_notifs_icon_wrapper li>.badge+.notifs_badge,#header_notifs_icon_wrapper #dashboard .data_list li>.badge+.notifs_badge,#header_notifs_icon_wrapper .list-group-item>.notifs_badge+.notifs_badge,#dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.notifs_badge,#header_notifs_icon_wrapper #dashboard .data_list li>.notifs_badge+.notifs_badge{margin-right:5px}.list-group-item.active,#dashboard .data_list li.active,.list-group-item.active:hover,#dashboard .data_list li.active:hover,.list-group-item.active:focus,#dashboard .data_list li.active:focus{z-index:2;color:#fff;background-color:#1ba6e5;border-color:#1ba6e5}.list-group-item.active .list-group-item-heading,#dashboard .data_list li.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,#dashboard .data_list li.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,#dashboard .data_list li.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,#dashboard .data_list li.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,#dashboard .data_list li.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text,#dashboard .data_list li.active:focus .list-group-item-text{color:#d2edfa}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel,#header_notifs_icon_wrapper .notifs_panel,#dash_version{margin-bottom:17px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group,#header_notifs_icon_wrapper .notifs_panel>.list-group,#dash_version>.list-group,#dashboard .panel>.data_list,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list,#dashboard #dash_version>.data_list{margin-bottom:0}.panel>.list-group .list-group-item,#header_notifs_icon_wrapper .notifs_panel>.list-group .list-group-item,#dash_version>.list-group .list-group-item,#dashboard .panel>.data_list .list-group-item,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list .list-group-item,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list .list-group-item,#dashboard #dash_version>.data_list .list-group-item,.panel>.list-group #dashboard .data_list li,#dashboard .data_list .panel>.list-group li,#header_notifs_icon_wrapper .notifs_panel>.list-group #dashboard .data_list li,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel>.list-group li,#dash_version>.list-group #dashboard .data_list li,#dashboard .data_list #dash_version>.list-group li,#dashboard .panel>.data_list li,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list li,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list li,#dashboard #dash_version>.data_list li{border-width:1px 0}.panel>.list-group .list-group-item:first-child,#header_notifs_icon_wrapper .notifs_panel>.list-group .list-group-item:first-child,#dash_version>.list-group .list-group-item:first-child,#dashboard .panel>.data_list .list-group-item:first-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list .list-group-item:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list .list-group-item:first-child,#dashboard #dash_version>.data_list .list-group-item:first-child,.panel>.list-group #dashboard .data_list li:first-child,#dashboard .data_list .panel>.list-group li:first-child,#header_notifs_icon_wrapper .notifs_panel>.list-group #dashboard .data_list li:first-child,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel>.list-group li:first-child,#dash_version>.list-group #dashboard .data_list li:first-child,#dashboard .data_list #dash_version>.list-group li:first-child,#dashboard .panel>.data_list li:first-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list li:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list li:first-child,#dashboard #dash_version>.data_list li:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child,#header_notifs_icon_wrapper .notifs_panel>.list-group .list-group-item:last-child,#dash_version>.list-group .list-group-item:last-child,#dashboard .panel>.data_list .list-group-item:last-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list .list-group-item:last-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list .list-group-item:last-child,#dashboard #dash_version>.data_list .list-group-item:last-child,.panel>.list-group #dashboard .data_list li:last-child,#dashboard .data_list .panel>.list-group li:last-child,#header_notifs_icon_wrapper .notifs_panel>.list-group #dashboard .data_list li:last-child,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel>.list-group li:last-child,#dash_version>.list-group #dashboard .data_list li:last-child,#dashboard .data_list #dash_version>.list-group li:last-child,#dashboard .panel>.data_list li:last-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list li:last-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list li:last-child,#dashboard #dash_version>.data_list li:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.list-group .list-group-item:first-child,#dashboard .panel-heading+.data_list .list-group-item:first-child,#header_notifs_icon_wrapper .notifs_panel #dashboard .notifs_panel_header+.data_list .list-group-item:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.data_list .list-group-item:first-child,.panel-heading+.list-group #dashboard .data_list li:first-child,#dashboard .data_list .panel-heading+.list-group li:first-child,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.list-group #dashboard .data_list li:first-child,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.list-group li:first-child,#dashboard .panel-heading+.data_list li:first-child,#header_notifs_icon_wrapper .notifs_panel #dashboard .notifs_panel_header+.data_list li:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.data_list li:first-child{border-top-width:0}.panel>.table,#header_notifs_icon_wrapper .notifs_panel>.table,#dash_version>.table{margin-bottom:0}.panel>.panel-body+.table,#header_notifs_icon_wrapper .notifs_panel>.panel-body+.table,#dash_version>.panel-body+.table{border-top:1px solid #ddd}.panel-heading,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-title{margin-top:0;margin-bottom:0;font-size:14px}.panel-title>a{color:inherit}.panel-footer,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel-group .panel,.panel-group #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper .panel-group .notifs_panel,.panel-group #dash_version{margin-bottom:0;border-radius:3px;overflow:hidden}.panel-group .panel+.panel,.panel-group #header_notifs_icon_wrapper .notifs_panel+.panel,#header_notifs_icon_wrapper .panel-group .notifs_panel+.panel,.panel-group #dash_version+.panel,.panel-group #header_notifs_icon_wrapper .panel+.notifs_panel,#header_notifs_icon_wrapper .panel-group .panel+.notifs_panel,.panel-group #header_notifs_icon_wrapper .notifs_panel+.notifs_panel,#header_notifs_icon_wrapper .panel-group .notifs_panel+.notifs_panel,.panel-group #header_notifs_icon_wrapper #dash_version+.notifs_panel,#header_notifs_icon_wrapper .panel-group #dash_version+.notifs_panel,.panel-group .panel+#dash_version,.panel-group #header_notifs_icon_wrapper .notifs_panel+#dash_version,#header_notifs_icon_wrapper .panel-group .notifs_panel+#dash_version,.panel-group #dash_version+#dash_version{margin-top:5px}.panel-group .panel-heading,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_header{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_header+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default,#header_notifs_icon_wrapper .notifs_panel{border-color:#ddd}.panel-default>.panel-heading,#header_notifs_icon_wrapper .notifs_panel>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-default>.notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel>.notifs_panel_header{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-default>.notifs_panel_header+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-default>.notifs_panel_footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#1ba6e5}.panel-primary>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-primary>.notifs_panel_header{color:#fff;background-color:#1ba6e5;border-color:#1ba6e5}.panel-primary>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-primary>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#1ba6e5}.panel-primary>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-primary>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#1ba6e5}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-success>.notifs_panel_header{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-success>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-success>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-warning>.notifs_panel_header{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-warning>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-warning>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-danger>.notifs_panel_header{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-danger>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-danger>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-info>.notifs_panel_header{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-info>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-info>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well,.hook_panel{min-height:20px;padding:19px;margin-bottom:20px;background-color:#ebebeb;border:1px solid #d9d9d9;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote,.hook_panel blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:18px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .navbar-fixed-top,.modal-open #header_infos,.modal-open .navbar-fixed-bottom{margin-right:15px}body.modal-open{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width: 768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:3px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:12px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.pull-right,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right !important}.pull-left,.page-head h2.page-title{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width: 400px){@-ms-viewport{width:320px}}.hidden{display:none !important;visibility:hidden !important}.visible-xs{display:none !important}tr.visible-xs{display:none !important}th.visible-xs,td.visible-xs{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-xs.visible-sm{display:block !important}tr.visible-xs.visible-sm{display:table-row !important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-xs.visible-md{display:block !important}tr.visible-xs.visible-md{display:table-row !important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-xs.visible-lg{display:block !important}tr.visible-xs.visible-lg{display:table-row !important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell !important}}.visible-sm{display:none !important}tr.visible-sm{display:none !important}th.visible-sm,td.visible-sm{display:none !important}@media (max-width: 767px){.visible-sm.visible-xs{display:block !important}tr.visible-sm.visible-xs{display:table-row !important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-sm.visible-md{display:block !important}tr.visible-sm.visible-md{display:table-row !important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-sm.visible-lg{display:block !important}tr.visible-sm.visible-lg{display:table-row !important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell !important}}.visible-md{display:none !important}tr.visible-md{display:none !important}th.visible-md,td.visible-md{display:none !important}@media (max-width: 767px){.visible-md.visible-xs{display:block !important}tr.visible-md.visible-xs{display:table-row !important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-md.visible-sm{display:block !important}tr.visible-md.visible-sm{display:table-row !important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-md.visible-lg{display:block !important}tr.visible-md.visible-lg{display:table-row !important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell !important}}.visible-lg{display:none !important}tr.visible-lg{display:none !important}th.visible-lg,td.visible-lg{display:none !important}@media (max-width: 767px){.visible-lg.visible-xs{display:block !important}tr.visible-lg.visible-xs{display:table-row !important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-lg.visible-sm{display:block !important}tr.visible-lg.visible-sm{display:table-row !important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-lg.visible-md{display:block !important}tr.visible-lg.visible-md{display:table-row !important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-lg{display:block !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}.hidden-xs,#header_notifs_icon_wrapper{display:block !important}tr.hidden-xs,tr#header_notifs_icon_wrapper{display:table-row !important}th.hidden-xs,th#header_notifs_icon_wrapper,td.hidden-xs,td#header_notifs_icon_wrapper{display:table-cell !important}@media (max-width: 767px){.hidden-xs,#header_notifs_icon_wrapper{display:none !important}tr.hidden-xs,tr#header_notifs_icon_wrapper{display:none !important}th.hidden-xs,th#header_notifs_icon_wrapper,td.hidden-xs,td#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-xs.hidden-sm,.hidden-sm#header_notifs_icon_wrapper{display:none !important}tr.hidden-xs.hidden-sm,tr.hidden-sm#header_notifs_icon_wrapper{display:none !important}th.hidden-xs.hidden-sm,th.hidden-sm#header_notifs_icon_wrapper,td.hidden-xs.hidden-sm,td.hidden-sm#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-xs.hidden-md,.hidden-md#header_notifs_icon_wrapper{display:none !important}tr.hidden-xs.hidden-md,tr.hidden-md#header_notifs_icon_wrapper{display:none !important}th.hidden-xs.hidden-md,th.hidden-md#header_notifs_icon_wrapper,td.hidden-xs.hidden-md,td.hidden-md#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 1200px){.hidden-xs.hidden-lg,.hidden-lg#header_notifs_icon_wrapper{display:none !important}tr.hidden-xs.hidden-lg,tr.hidden-lg#header_notifs_icon_wrapper{display:none !important}th.hidden-xs.hidden-lg,th.hidden-lg#header_notifs_icon_wrapper,td.hidden-xs.hidden-lg,td.hidden-lg#header_notifs_icon_wrapper{display:none !important}}.hidden-sm{display:block !important}tr.hidden-sm{display:table-row !important}th.hidden-sm,td.hidden-sm{display:table-cell !important}@media (max-width: 767px){.hidden-sm.hidden-xs,.hidden-sm#header_notifs_icon_wrapper{display:none !important}tr.hidden-sm.hidden-xs,tr.hidden-sm#header_notifs_icon_wrapper{display:none !important}th.hidden-sm.hidden-xs,th.hidden-sm#header_notifs_icon_wrapper,td.hidden-sm.hidden-xs,td.hidden-sm#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}tr.hidden-sm{display:none !important}th.hidden-sm,td.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-sm.hidden-md{display:none !important}tr.hidden-sm.hidden-md{display:none !important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-sm.hidden-lg{display:none !important}tr.hidden-sm.hidden-lg{display:none !important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none !important}}.hidden-md{display:block !important}tr.hidden-md{display:table-row !important}th.hidden-md,td.hidden-md{display:table-cell !important}@media (max-width: 767px){.hidden-md.hidden-xs,.hidden-md#header_notifs_icon_wrapper{display:none !important}tr.hidden-md.hidden-xs,tr.hidden-md#header_notifs_icon_wrapper{display:none !important}th.hidden-md.hidden-xs,th.hidden-md#header_notifs_icon_wrapper,td.hidden-md.hidden-xs,td.hidden-md#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-md.hidden-sm{display:none !important}tr.hidden-md.hidden-sm{display:none !important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}tr.hidden-md{display:none !important}th.hidden-md,td.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-md.hidden-lg{display:none !important}tr.hidden-md.hidden-lg{display:none !important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none !important}}.hidden-lg{display:block !important}tr.hidden-lg{display:table-row !important}th.hidden-lg,td.hidden-lg{display:table-cell !important}@media (max-width: 767px){.hidden-lg.hidden-xs,.hidden-lg#header_notifs_icon_wrapper{display:none !important}tr.hidden-lg.hidden-xs,tr.hidden-lg#header_notifs_icon_wrapper{display:none !important}th.hidden-lg.hidden-xs,th.hidden-lg#header_notifs_icon_wrapper,td.hidden-lg.hidden-xs,td.hidden-lg#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-lg.hidden-sm{display:none !important}tr.hidden-lg.hidden-sm{display:none !important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-lg.hidden-md{display:none !important}tr.hidden-lg.hidden-md{display:none !important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}tr.hidden-lg{display:none !important}th.hidden-lg,td.hidden-lg{display:none !important}}.visible-print{display:none !important}tr.visible-print{display:none !important}th.visible-print,td.visible-print{display:none !important}@media print{.visible-print{display:block !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}.hidden-print{display:none !important}tr.hidden-print{display:none !important}th.hidden-print,td.hidden-print{display:none !important}}/*! + *//*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:0.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace, serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:2cm .5cm}p,h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{orphans:3;widows:3}h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{page-break-after:avoid}select{background:#fff !important}.navbar,#header_infos{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:12px;line-height:1.42857;color:#555;background-color:#515561}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#1ba6e5;text-decoration:none}a:hover,a:focus{color:#1275a1;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail,.thumbnail{padding:4px;line-height:1.42857;background-color:#515561;border:1px solid #ddd;border-radius:3px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:17px;margin-bottom:17px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}p{margin:0 0 8.5px}.lead{margin-bottom:17px;font-size:13px;font-weight:200;line-height:1.4}@media (min-width: 768px){.lead{font-size:18px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted,.module_description,.hook_panel_header .hook_description{color:#999}.text-primary{color:#1ba6e5}.text-primary:hover{color:#1585b8}.text-warning{color:#c09853}.text-warning:hover{color:#a47e3c}.text-danger{color:#b94a48}.text-danger:hover{color:#953b39}.text-success{color:#468847}.text-success:hover{color:#356635}.text-info{color:#3a87ad}.text-info:hover{color:#2d6987}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Ubuntu",sans-serif;font-weight:300;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,#content .panel-heading small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header small,h3 .small,#content .panel-heading .small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{margin-top:17px;margin-bottom:8.5px}h1 small,h1 .small,h2 small,h2 .small,h3 small,#content .panel-heading small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header small,h3 .small,#content .panel-heading .small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .small{font-size:65%}h4,h5,h6{margin-top:8.5px;margin-bottom:8.5px}h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small{font-size:75%}h1,.h1{font-size:31px}h2,.h2{font-size:25px}h3,#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header,.h3{font-size:21px}h4,.h4{font-size:15px}h5,.h5{font-size:12px}h6,.h6{font-size:11px}.page-header{padding-bottom:7.5px;margin:34px 0 17px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:8.5px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled,.list-inline,#dashboard .data_list_large,#dashboard .data_list_vertical{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-bottom:17px}dt,dd{line-height:1.42857}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:8.5px 17px;margin:0 0 17px;border-left:5px solid #eee}blockquote p{font-size:15px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right,#content h3:not(.modal-title) blockquote.panel-heading-action,#content .panel-heading blockquote.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,#content h3:not(.modal-title) blockquote.panel-heading-action p,#content .panel-heading blockquote.panel-heading-action p,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action p,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action p,blockquote.pull-right small,#content h3:not(.modal-title) blockquote.panel-heading-action small,#content .panel-heading blockquote.panel-heading-action small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action small,blockquote.pull-right .small,#content h3:not(.modal-title) blockquote.panel-heading-action .small,#content .panel-heading blockquote.panel-heading-action .small,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action .small,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action .small{text-align:right}blockquote.pull-right small:before,#content h3:not(.modal-title) blockquote.panel-heading-action small:before,#content .panel-heading blockquote.panel-heading-action small:before,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action small:before,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action small:before,blockquote.pull-right .small:before,#content h3:not(.modal-title) blockquote.panel-heading-action .small:before,#content .panel-heading blockquote.panel-heading-action .small:before,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action .small:before,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action .small:before{content:''}blockquote.pull-right small:after,#content h3:not(.modal-title) blockquote.panel-heading-action small:after,#content .panel-heading blockquote.panel-heading-action small:after,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action small:after,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action small:after,blockquote.pull-right .small:after,#content h3:not(.modal-title) blockquote.panel-heading-action .small:after,#content .panel-heading blockquote.panel-heading-action .small:after,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header blockquote.panel-heading-action .small:after,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header blockquote.panel-heading-action .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:17px;font-style:normal;line-height:1.42857}code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:3px}pre{display:block;padding:8px;margin:0 0 8.5px;font-size:11px;line-height:1.42857;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:5px;padding-right:5px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.row,#dashboard .data_list_vertical{margin-left:-5px;margin-right:-5px}.row:before,#dashboard .data_list_vertical:before,.row:after,#dashboard .data_list_vertical:after{content:" ";display:table}.row:after,#dashboard .data_list_vertical:after{clear:both}.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-4,#dashboard .data_list_vertical li,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:5px;padding-right:5px}.col-xs-11,.col-xs-10,.col-xs-9,.col-xs-8,.col-xs-7,.col-xs-6,.col-xs-5,.col-xs-4,#dashboard .data_list_vertical li,.col-xs-3,.col-xs-2,.col-xs-1,.col-xs-12{float:left}.col-xs-1{width:8.33333%}.col-xs-2{width:16.66667%}.col-xs-3{width:25%}.col-xs-4,#dashboard .data_list_vertical li{width:33.33333%}.col-xs-5{width:41.66667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333%}.col-xs-8{width:66.66667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333%}.col-xs-11{width:91.66667%}.col-xs-12{width:100%}.col-xs-pull-1{right:8.33333%}.col-xs-pull-2{right:16.66667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333%}.col-xs-pull-5{right:41.66667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333%}.col-xs-pull-8{right:66.66667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333%}.col-xs-pull-11{right:91.66667%}.col-xs-pull-12{right:100%}.col-xs-push-1{left:8.33333%}.col-xs-push-2{left:16.66667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333%}.col-xs-push-5{left:41.66667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333%}.col-xs-push-8{left:66.66667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333%}.col-xs-push-11{left:91.66667%}.col-xs-push-12{left:100%}.col-xs-offset-1{margin-left:8.33333%}.col-xs-offset-2{margin-left:16.66667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333%}.col-xs-offset-5{margin-left:41.66667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333%}.col-xs-offset-8{margin-left:66.66667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333%}.col-xs-offset-11{margin-left:91.66667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.container{width:728px}.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col-sm-12{float:left}.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}.col-sm-pull-1{right:8.33333%}.col-sm-pull-2{right:16.66667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333%}.col-sm-pull-5{right:41.66667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333%}.col-sm-pull-8{right:66.66667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333%}.col-sm-pull-11{right:91.66667%}.col-sm-pull-12{right:100%}.col-sm-push-1{left:8.33333%}.col-sm-push-2{left:16.66667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333%}.col-sm-push-5{left:41.66667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333%}.col-sm-push-8{left:66.66667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333%}.col-sm-push-11{left:91.66667%}.col-sm-push-12{left:100%}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.container{width:940px}.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-md-12{float:left}.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}.col-md-pull-1{right:8.33333%}.col-md-pull-2{right:16.66667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333%}.col-md-pull-5{right:41.66667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333%}.col-md-pull-8{right:66.66667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333%}.col-md-pull-11{right:91.66667%}.col-md-pull-12{right:100%}.col-md-push-1{left:8.33333%}.col-md-push-2{left:16.66667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333%}.col-md-push-5{left:41.66667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333%}.col-md-push-8{left:66.66667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333%}.col-md-push-11{left:91.66667%}.col-md-push-12{left:100%}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.container{width:1170px}.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-lg-12{float:left}.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}.col-lg-pull-1{right:8.33333%}.col-lg-pull-2{right:16.66667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333%}.col-lg-pull-5{right:41.66667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333%}.col-lg-pull-8{right:66.66667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333%}.col-lg-pull-11{right:91.66667%}.col-lg-pull-12{right:100%}.col-lg-push-1{left:8.33333%}.col-lg-push-2{left:16.66667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333%}.col-lg-push-5{left:41.66667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333%}.col-lg-push-8{left:66.66667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333%}.col-lg-push-11{left:91.66667%}.col-lg-push-12{left:100%}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}.col-lg-offset-12{margin-left:100%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:17px}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#515561}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th,.table>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th,.table>tbody>tr:hover>th{background-color:#e6e8e3}table col[class*="col-"]{float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#e6e8e3}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table>tbody>tr.danger:hover>th{background-color:#ebcccc}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table>tbody>tr.warning:hover>th{background-color:#faf2cc}@media (max-width: 767px){.table-responsive{width:100%;margin-bottom:12.75px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:17px;font-size:18px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:5px;font-size:12px;line-height:1.42857;color:#555;vertical-align:middle}.form-control:-moz-placeholder,input[type="text"]:-moz-placeholder,input[type="search"]:-moz-placeholder,input[type="password"]:-moz-placeholder,textarea:-moz-placeholder,select:-moz-placeholder{color:#999}.form-control::-moz-placeholder,input[type="text"]::-moz-placeholder,input[type="search"]::-moz-placeholder,input[type="password"]::-moz-placeholder,textarea::-moz-placeholder,select::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder,input[type="text"]:-ms-input-placeholder,input[type="search"]:-ms-input-placeholder,input[type="password"]:-ms-input-placeholder,textarea:-ms-input-placeholder,select:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder,input[type="text"]::-webkit-input-placeholder,input[type="search"]::-webkit-input-placeholder,input[type="password"]::-webkit-input-placeholder,textarea::-webkit-input-placeholder,select::-webkit-input-placeholder{color:#999}.form-control,input[type="text"],input[type="search"],input[type="password"],textarea,select{display:block;width:100%;height:27px;padding:4px 8px;font-size:12px;line-height:1.42857;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s,box-shadow ease-in-out 0.15s}.form-control:focus,input[type="text"]:focus,input[type="search"]:focus,input[type="password"]:focus,textarea:focus,select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],input[disabled][type="text"],input[disabled][type="search"],input[disabled][type="password"],textarea[disabled],select[disabled],.form-control[readonly],input[readonly][type="text"],input[readonly][type="search"],input[readonly][type="password"],textarea[readonly],select[readonly],fieldset[disabled] .form-control,fieldset[disabled] input[type="text"],fieldset[disabled] input[type="search"],fieldset[disabled] input[type="password"],fieldset[disabled] textarea,fieldset[disabled] select{cursor:not-allowed;background-color:#eee}textarea.form-control,textarea{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:17px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],fieldset[disabled] input[type="checkbox"],.radio[disabled],fieldset[disabled] .radio,.radio-inline[disabled],fieldset[disabled] .radio-inline,.checkbox[disabled],fieldset[disabled] .checkbox,.checkbox-inline[disabled],fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm,.input-group-sm>.form-control,.input-group-sm>input[type="text"],.input-group-sm>input[type="search"],.input-group-sm>input[type="password"],.input-group-sm>textarea,.input-group-sm>select,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:28px;line-height:28px}textarea.input-sm,.input-group-sm>textarea,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn{height:auto}.input-lg,.input-group-lg>.form-control,.input-group-lg>input[type="text"],.input-group-lg>input[type="search"],.input-group-lg>input[type="password"],.input-group-lg>textarea,.input-group-lg>select,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:41px;padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}select.input-lg,.input-group-lg>select,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:41px;line-height:41px}textarea.input-lg,.input-group-lg>textarea,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#c09853}.has-warning .form-control,.has-warning input[type="text"],.has-warning input[type="search"],.has-warning input[type="password"],.has-warning textarea,.has-warning select{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus,.has-warning input[type="text"]:focus,.has-warning input[type="search"]:focus,.has-warning input[type="password"]:focus,.has-warning textarea:focus,.has-warning select:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#b94a48}.has-error .form-control,.has-error input[type="text"],.has-error input[type="search"],.has-error input[type="password"],.has-error textarea,.has-error select{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus,.has-error input[type="text"]:focus,.has-error input[type="search"]:focus,.has-error input[type="password"]:focus,.has-error textarea:focus,.has-error select:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#468847}.has-success .form-control,.has-success input[type="text"],.has-success input[type="search"],.has-success input[type="password"],.has-success textarea,.has-success select{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus,.has-success input[type="text"]:focus,.has-success input[type="search"]:focus,.has-success input[type="password"]:focus,.has-success textarea:focus,.has-success select:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width: 768px){.form-inline .form-group,.navbar-form .form-group,#header_search .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control,.navbar-form .form-control,#header_search .form-control,.form-inline input[type="text"],.navbar-form input[type="text"],#header_search input[type="text"],.form-inline input[type="search"],.navbar-form input[type="search"],#header_search input[type="search"],.form-inline input[type="password"],.navbar-form input[type="password"],#header_search input[type="password"],.form-inline textarea,.navbar-form textarea,#header_search textarea,.form-inline select,.navbar-form select,#header_search select{display:inline-block}.form-inline .radio,.navbar-form .radio,#header_search .radio,.form-inline .checkbox,.navbar-form .checkbox,#header_search .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type="radio"],.navbar-form .radio input[type="radio"],#header_search .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"],.navbar-form .checkbox input[type="checkbox"],#header_search .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:5px}.form-horizontal .form-group{margin-left:-5px;margin-right:-5px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:5px}@media (min-width: 768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:4px 8px;font-size:12px;line-height:1.42857;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#555;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#555;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active{color:#555;background-color:#ebebeb;border-color:#adadad}.open .btn-default.dropdown-toggle{color:#555;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active{background-image:none}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#555;background-color:#fff;border-color:#5cb85c}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active{color:#555;background-color:#ebebeb;border-color:#419641}.open .btn-primary.dropdown-toggle{color:#555;background-color:#ebebeb;border-color:#419641}.btn-primary:active,.btn-primary.active{background-image:none}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#fff;border-color:#5cb85c}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active{color:#fff;background-color:#ed9c28;border-color:#d58512}.open .btn-warning.dropdown-toggle{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active{background-image:none}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active{color:#fff;background-color:#d2322d;border-color:#ac2925}.open .btn-danger.dropdown-toggle{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active{background-image:none}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active{color:#fff;background-color:#47a447;border-color:#398439}.open .btn-success.dropdown-toggle{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active{background-image:none}.open .btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active{color:#fff;background-color:#39b3d7;border-color:#269abc}.open .btn-info.dropdown-toggle{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active{background-image:none}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{color:#1ba6e5;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#1275a1;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:15px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn,.btn-xs,.btn-group-xs>.btn{padding:5px 10px;font-size:11px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;transition:height 0.35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('/font/bootstrap/glyphicons-halflings-regular.eot');src:url('/font/bootstrap/glyphicons-halflings-regular.eot?#iefix') format("embedded-opentype"),url('/font/bootstrap/glyphicons-halflings-regular.woff') format("woff"),url('/font/bootstrap/glyphicons-halflings-regular.ttf') format("truetype"),url('/font/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:12px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right,#content h3:not(.modal-title) .dropdown-menu.panel-heading-action,#content .panel-heading .dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .dropdown-menu.panel-heading-action{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#1ba6e5}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.42857;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action>.dropdown-menu,#content .panel-heading .panel-heading-action>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.navbar-right .dropdown-menu,#header_employee_box .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#555}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#555}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified .btn{float:none;display:table-cell;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control,.input-group input[type="text"],.input-group input[type="search"],.input-group input[type="password"],.input-group textarea,.input-group select{width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control,.input-group input[type="text"],.input-group input[type="search"],.input-group input[type="password"],.input-group textarea,.input-group select{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child),.input-group input[type="text"]:not(:first-child):not(:last-child),.input-group input[type="search"]:not(:first-child):not(:last-child),.input-group input[type="password"]:not(:first-child):not(:last-child),.input-group textarea:not(:first-child):not(:last-child),.input-group select:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:4px 8px;font-size:12px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:3px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:11px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:15px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group input[type="text"]:first-child,.input-group input[type="search"]:first-child,.input-group input[type="password"]:first-child,.input-group textarea:first-child,.input-group select:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group input[type="text"]:last-child,.input-group input[type="search"]:last-child,.input-group input[type="password"]:last-child,.input-group textarea:last-child,.input-group select:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav,#header_notifs_icon_wrapper,#header_employee_box,#header_quick{margin-bottom:0;padding-left:0;list-style:none}.nav:before,#header_notifs_icon_wrapper:before,#header_employee_box:before,#header_quick:before,.nav:after,#header_notifs_icon_wrapper:after,#header_employee_box:after,#header_quick:after{content:" ";display:table}.nav:after,#header_notifs_icon_wrapper:after,#header_employee_box:after,#header_quick:after{clear:both}.nav>li,#header_notifs_icon_wrapper>li,#header_employee_box>li,#header_quick>li{position:relative;display:block}.nav>li>a,#header_notifs_icon_wrapper>li>a,#header_employee_box>li>a,#header_quick>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,#header_notifs_icon_wrapper>li>a:hover,#header_employee_box>li>a:hover,#header_quick>li>a:hover,.nav>li>a:focus,#header_notifs_icon_wrapper>li>a:focus,#header_employee_box>li>a:focus,#header_quick>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a,#header_notifs_icon_wrapper>li.disabled>a,#header_employee_box>li.disabled>a,#header_quick>li.disabled>a{color:#999}.nav>li.disabled>a:hover,#header_notifs_icon_wrapper>li.disabled>a:hover,#header_employee_box>li.disabled>a:hover,#header_quick>li.disabled>a:hover,.nav>li.disabled>a:focus,#header_notifs_icon_wrapper>li.disabled>a:focus,#header_employee_box>li.disabled>a:focus,#header_quick>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,#header_notifs_icon_wrapper .open>a,#header_employee_box .open>a,#header_quick .open>a,.nav .open>a:hover,#header_notifs_icon_wrapper .open>a:hover,#header_employee_box .open>a:hover,#header_quick .open>a:hover,.nav .open>a:focus,#header_notifs_icon_wrapper .open>a:focus,#header_employee_box .open>a:focus,#header_quick .open>a:focus{background-color:#eee;border-color:#1ba6e5}.nav .open>a .caret,#header_notifs_icon_wrapper .open>a .caret,#header_employee_box .open>a .caret,#header_quick .open>a .caret,.nav .open>a:hover .caret,#header_notifs_icon_wrapper .open>a:hover .caret,#header_employee_box .open>a:hover .caret,#header_quick .open>a:hover .caret,.nav .open>a:focus .caret,#header_notifs_icon_wrapper .open>a:focus .caret,#header_employee_box .open>a:focus .caret,#header_quick .open>a:focus .caret{border-top-color:#1275a1;border-bottom-color:#1275a1}.nav .nav-divider,#header_notifs_icon_wrapper .nav-divider,#header_employee_box .nav-divider,#header_quick .nav-divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img,#header_notifs_icon_wrapper>li>a>img,#header_employee_box>li>a>img,#header_quick>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857;border:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#515561;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:3px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#1ba6e5}.nav-pills>li.active>a .caret,.nav-pills>li.active>a:hover .caret,.nav-pills>li.active>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:3px 3px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#515561}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav .caret,#header_notifs_icon_wrapper .caret,#header_employee_box .caret,#header_quick .caret{border-top-color:#1ba6e5;border-bottom-color:#1ba6e5}.nav a:hover .caret,#header_notifs_icon_wrapper a:hover .caret,#header_employee_box a:hover .caret,#header_quick a:hover .caret{border-top-color:#1275a1;border-bottom-color:#1275a1}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar,#header_infos{position:relative;min-height:35px;margin-bottom:17px;border:1px solid transparent}.navbar:before,#header_infos:before,.navbar:after,#header_infos:after{content:" ";display:table}.navbar:after,#header_infos:after{clear:both}@media (min-width: 768px){.navbar,#header_infos{border-radius:3px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:5px;padding-left:5px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:auto}.navbar-collapse .navbar-nav.navbar-left:first-child,.navbar-collapse .navbar-left#header_notifs_icon_wrapper:first-child,.navbar-collapse .navbar-left#header_employee_box:first-child,.navbar-collapse .navbar-nav#header_search:first-child,.navbar-collapse #header_quick:first-child{margin-left:-5px}.navbar-collapse .navbar-nav.navbar-right:last-child,.navbar-collapse .navbar-right#header_notifs_icon_wrapper:last-child,.navbar-collapse #header_employee_box:last-child,.navbar-collapse .navbar-right#header_quick:last-child{margin-right:-5px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-5px;margin-left:-5px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,#header_infos,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,#header_infos,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top,#header_infos{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand,#header_shopname{float:left;padding:9px 5px;font-size:15px;line-height:17px}.navbar-brand:hover,#header_shopname:hover,.navbar-brand:focus,#header_shopname:focus{text-decoration:none}@media (min-width: 768px){.navbar>.container .navbar-brand,#header_infos>.container .navbar-brand,.navbar>.container #header_shopname,#header_infos>.container #header_shopname{margin-left:-5px}}.navbar-toggle{position:relative;float:right;margin-right:5px;padding:9px 10px;margin-top:0.5px;margin-bottom:0.5px;background-color:transparent;border:1px solid transparent;border-radius:3px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav,#header_notifs_icon_wrapper,#header_employee_box,#header_quick{margin:4.5px -5px}.navbar-nav>li>a,#header_notifs_icon_wrapper>li>a,#header_employee_box>li>a,#header_quick>li>a{padding-top:10px;padding-bottom:10px;line-height:17px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu,#header_notifs_icon_wrapper .open .dropdown-menu,#header_employee_box .open .dropdown-menu,#header_quick .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,#header_notifs_icon_wrapper .open .dropdown-menu>li>a,#header_employee_box .open .dropdown-menu>li>a,#header_quick .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header,#header_notifs_icon_wrapper .open .dropdown-menu .dropdown-header,#header_employee_box .open .dropdown-menu .dropdown-header,#header_quick .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a,#header_notifs_icon_wrapper .open .dropdown-menu>li>a,#header_employee_box .open .dropdown-menu>li>a,#header_quick .open .dropdown-menu>li>a{line-height:17px}.navbar-nav .open .dropdown-menu>li>a:hover,#header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,#header_employee_box .open .dropdown-menu>li>a:hover,#header_quick .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus,#header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,#header_employee_box .open .dropdown-menu>li>a:focus,#header_quick .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav,#header_notifs_icon_wrapper,#header_employee_box,#header_quick{float:left;margin:0}.navbar-nav>li,#header_notifs_icon_wrapper>li,#header_employee_box>li,#header_quick>li{float:left}.navbar-nav>li>a,#header_notifs_icon_wrapper>li>a,#header_employee_box>li>a,#header_quick>li>a{padding-top:9px;padding-bottom:9px}}@media (min-width: 768px){.navbar-left,#header_search,#header_quick{float:left !important}.navbar-right,#header_employee_box{float:right !important}}.navbar-form,#header_search{margin-left:-5px;margin-right:-5px;padding:10px 5px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:4px;margin-bottom:4px}@media (max-width: 767px){.navbar-form .form-group,#header_search .form-group{margin-bottom:5px}}@media (min-width: 768px){.navbar-form,#header_search{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu,#header_notifs_icon_wrapper>li>.dropdown-menu,#header_employee_box>li>.dropdown-menu,#header_quick>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu,.navbar-fixed-bottom #header_notifs_icon_wrapper>li>.dropdown-menu,.navbar-fixed-bottom #header_employee_box>li>.dropdown-menu,.navbar-fixed-bottom #header_quick>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,#content h3:not(.modal-title) .navbar-nav.panel-heading-action>li>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action#header_employee_box>li>.dropdown-menu,#content h3:not(.modal-title) .panel-heading-action#header_quick>li>.dropdown-menu,#content .panel-heading .navbar-nav.panel-heading-action>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .navbar-nav.panel-heading-action>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .navbar-nav.panel-heading-action>li>.dropdown-menu,#content .panel-heading .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action#header_notifs_icon_wrapper>li>.dropdown-menu,#content .panel-heading .panel-heading-action#header_employee_box>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action#header_employee_box>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action#header_employee_box>li>.dropdown-menu,#content .panel-heading .panel-heading-action#header_quick>li>.dropdown-menu,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action#header_quick>li>.dropdown-menu,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action#header_quick>li>.dropdown-menu,.pull-right#header_notifs_icon_wrapper>li>.dropdown-menu,.pull-right#header_employee_box>li>.dropdown-menu,.pull-right#header_quick>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right,#header_notifs_icon_wrapper>li>.dropdown-menu.pull-right,#header_employee_box>li>.dropdown-menu.pull-right,#header_quick>li>.dropdown-menu.pull-right,#content h3:not(.modal-title) .navbar-nav>li>.dropdown-menu.panel-heading-action,#content h3:not(.modal-title) #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#content h3:not(.modal-title) #header_employee_box>li>.dropdown-menu.panel-heading-action,#content h3:not(.modal-title) #header_quick>li>.dropdown-menu.panel-heading-action,#content .panel-heading .navbar-nav>li>.dropdown-menu.panel-heading-action,#content .panel-heading #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#content .panel-heading #header_employee_box>li>.dropdown-menu.panel-heading-action,#content .panel-heading #header_quick>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .navbar-nav>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #header_employee_box>li>.dropdown-menu.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #header_quick>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .navbar-nav>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header #header_notifs_icon_wrapper>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header #header_employee_box>li>.dropdown-menu.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header #header_quick>li>.dropdown-menu.panel-heading-action{left:auto;right:0}.navbar-btn{margin-top:4px;margin-bottom:4px}.navbar-text{float:left;margin-top:9px;margin-bottom:9px}@media (min-width: 768px){.navbar-text{margin-left:5px;margin-right:5px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand,.navbar-default #header_shopname{color:#777}.navbar-default .navbar-brand:hover,.navbar-default #header_shopname:hover,.navbar-default .navbar-brand:focus,.navbar-default #header_shopname:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a,.navbar-default #header_notifs_icon_wrapper>li>a,.navbar-default #header_employee_box>li>a,.navbar-default #header_quick>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default #header_notifs_icon_wrapper>li>a:hover,.navbar-default #header_employee_box>li>a:hover,.navbar-default #header_quick>li>a:hover,.navbar-default .navbar-nav>li>a:focus,.navbar-default #header_notifs_icon_wrapper>li>a:focus,.navbar-default #header_employee_box>li>a:focus,.navbar-default #header_quick>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default #header_notifs_icon_wrapper>.active>a,.navbar-default #header_employee_box>.active>a,.navbar-default #header_quick>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default #header_notifs_icon_wrapper>.active>a:hover,.navbar-default #header_employee_box>.active>a:hover,.navbar-default #header_quick>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus,.navbar-default #header_notifs_icon_wrapper>.active>a:focus,.navbar-default #header_employee_box>.active>a:focus,.navbar-default #header_quick>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default #header_notifs_icon_wrapper>.disabled>a,.navbar-default #header_employee_box>.disabled>a,.navbar-default #header_quick>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default #header_notifs_icon_wrapper>.disabled>a:hover,.navbar-default #header_employee_box>.disabled>a:hover,.navbar-default #header_quick>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default #header_notifs_icon_wrapper>.disabled>a:focus,.navbar-default #header_employee_box>.disabled>a:focus,.navbar-default #header_quick>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form,.navbar-default #header_search{border-color:#e7e7e7}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default #header_notifs_icon_wrapper>.dropdown>a:hover .caret,.navbar-default #header_employee_box>.dropdown>a:hover .caret,.navbar-default #header_quick>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret,.navbar-default #header_notifs_icon_wrapper>.dropdown>a:focus .caret,.navbar-default #header_employee_box>.dropdown>a:focus .caret,.navbar-default #header_quick>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default #header_notifs_icon_wrapper>.open>a,.navbar-default #header_employee_box>.open>a,.navbar-default #header_quick>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default #header_notifs_icon_wrapper>.open>a:hover,.navbar-default #header_employee_box>.open>a:hover,.navbar-default #header_quick>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus,.navbar-default #header_notifs_icon_wrapper>.open>a:focus,.navbar-default #header_employee_box>.open>a:focus,.navbar-default #header_quick>.open>a:focus{background-color:#e7e7e7;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default #header_notifs_icon_wrapper>.open>a .caret,.navbar-default #header_employee_box>.open>a .caret,.navbar-default #header_quick>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default #header_notifs_icon_wrapper>.open>a:hover .caret,.navbar-default #header_employee_box>.open>a:hover .caret,.navbar-default #header_quick>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret,.navbar-default #header_notifs_icon_wrapper>.open>a:focus .caret,.navbar-default #header_employee_box>.open>a:focus .caret,.navbar-default #header_quick>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret,.navbar-default #header_notifs_icon_wrapper>.dropdown>a .caret,.navbar-default #header_employee_box>.dropdown>a .caret,.navbar-default #header_quick>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a,.navbar-default #header_employee_box .open .dropdown-menu>li>a,.navbar-default #header_quick .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,.navbar-default #header_employee_box .open .dropdown-menu>li>a:hover,.navbar-default #header_quick .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,.navbar-default #header_employee_box .open .dropdown-menu>li>a:focus,.navbar-default #header_quick .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a,.navbar-default #header_employee_box .open .dropdown-menu>.active>a,.navbar-default #header_quick .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:hover,.navbar-default #header_employee_box .open .dropdown-menu>.active>a:hover,.navbar-default #header_quick .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:focus,.navbar-default #header_employee_box .open .dropdown-menu>.active>a:focus,.navbar-default #header_quick .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a,.navbar-default #header_employee_box .open .dropdown-menu>.disabled>a,.navbar-default #header_quick .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:hover,.navbar-default #header_employee_box .open .dropdown-menu>.disabled>a:hover,.navbar-default #header_quick .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:focus,.navbar-default #header_employee_box .open .dropdown-menu>.disabled>a:focus,.navbar-default #header_quick .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse,#header_infos{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand,#header_infos .navbar-brand,.navbar-inverse #header_shopname,#header_infos #header_shopname{color:#999}.navbar-inverse .navbar-brand:hover,#header_infos .navbar-brand:hover,.navbar-inverse #header_shopname:hover,#header_infos #header_shopname:hover,.navbar-inverse .navbar-brand:focus,#header_infos .navbar-brand:focus,.navbar-inverse #header_shopname:focus,#header_infos #header_shopname:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text,#header_infos .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a,#header_infos .navbar-nav>li>a,.navbar-inverse #header_notifs_icon_wrapper>li>a,#header_infos #header_notifs_icon_wrapper>li>a,.navbar-inverse #header_employee_box>li>a,#header_infos #header_employee_box>li>a,.navbar-inverse #header_quick>li>a,#header_infos #header_quick>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,#header_infos .navbar-nav>li>a:hover,.navbar-inverse #header_notifs_icon_wrapper>li>a:hover,#header_infos #header_notifs_icon_wrapper>li>a:hover,.navbar-inverse #header_employee_box>li>a:hover,#header_infos #header_employee_box>li>a:hover,.navbar-inverse #header_quick>li>a:hover,#header_infos #header_quick>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus,#header_infos .navbar-nav>li>a:focus,.navbar-inverse #header_notifs_icon_wrapper>li>a:focus,#header_infos #header_notifs_icon_wrapper>li>a:focus,.navbar-inverse #header_employee_box>li>a:focus,#header_infos #header_employee_box>li>a:focus,.navbar-inverse #header_quick>li>a:focus,#header_infos #header_quick>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,#header_infos .navbar-nav>.active>a,.navbar-inverse #header_notifs_icon_wrapper>.active>a,#header_infos #header_notifs_icon_wrapper>.active>a,.navbar-inverse #header_employee_box>.active>a,#header_infos #header_employee_box>.active>a,.navbar-inverse #header_quick>.active>a,#header_infos #header_quick>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,#header_infos .navbar-nav>.active>a:hover,.navbar-inverse #header_notifs_icon_wrapper>.active>a:hover,#header_infos #header_notifs_icon_wrapper>.active>a:hover,.navbar-inverse #header_employee_box>.active>a:hover,#header_infos #header_employee_box>.active>a:hover,.navbar-inverse #header_quick>.active>a:hover,#header_infos #header_quick>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus,#header_infos .navbar-nav>.active>a:focus,.navbar-inverse #header_notifs_icon_wrapper>.active>a:focus,#header_infos #header_notifs_icon_wrapper>.active>a:focus,.navbar-inverse #header_employee_box>.active>a:focus,#header_infos #header_employee_box>.active>a:focus,.navbar-inverse #header_quick>.active>a:focus,#header_infos #header_quick>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,#header_infos .navbar-nav>.disabled>a,.navbar-inverse #header_notifs_icon_wrapper>.disabled>a,#header_infos #header_notifs_icon_wrapper>.disabled>a,.navbar-inverse #header_employee_box>.disabled>a,#header_infos #header_employee_box>.disabled>a,.navbar-inverse #header_quick>.disabled>a,#header_infos #header_quick>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,#header_infos .navbar-nav>.disabled>a:hover,.navbar-inverse #header_notifs_icon_wrapper>.disabled>a:hover,#header_infos #header_notifs_icon_wrapper>.disabled>a:hover,.navbar-inverse #header_employee_box>.disabled>a:hover,#header_infos #header_employee_box>.disabled>a:hover,.navbar-inverse #header_quick>.disabled>a:hover,#header_infos #header_quick>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus,#header_infos .navbar-nav>.disabled>a:focus,.navbar-inverse #header_notifs_icon_wrapper>.disabled>a:focus,#header_infos #header_notifs_icon_wrapper>.disabled>a:focus,.navbar-inverse #header_employee_box>.disabled>a:focus,#header_infos #header_employee_box>.disabled>a:focus,.navbar-inverse #header_quick>.disabled>a:focus,#header_infos #header_quick>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle,#header_infos .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,#header_infos .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus,#header_infos .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar,#header_infos .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,#header_infos .navbar-collapse,.navbar-inverse .navbar-form,#header_infos .navbar-form,.navbar-inverse #header_search,#header_infos #header_search{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,#header_infos .navbar-nav>.open>a,.navbar-inverse #header_notifs_icon_wrapper>.open>a,#header_infos #header_notifs_icon_wrapper>.open>a,.navbar-inverse #header_employee_box>.open>a,#header_infos #header_employee_box>.open>a,.navbar-inverse #header_quick>.open>a,#header_infos #header_quick>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,#header_infos .navbar-nav>.open>a:hover,.navbar-inverse #header_notifs_icon_wrapper>.open>a:hover,#header_infos #header_notifs_icon_wrapper>.open>a:hover,.navbar-inverse #header_employee_box>.open>a:hover,#header_infos #header_employee_box>.open>a:hover,.navbar-inverse #header_quick>.open>a:hover,#header_infos #header_quick>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus,#header_infos .navbar-nav>.open>a:focus,.navbar-inverse #header_notifs_icon_wrapper>.open>a:focus,#header_infos #header_notifs_icon_wrapper>.open>a:focus,.navbar-inverse #header_employee_box>.open>a:focus,#header_infos #header_employee_box>.open>a:focus,.navbar-inverse #header_quick>.open>a:focus,#header_infos #header_quick>.open>a:focus{background-color:#090909;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret,#header_infos .navbar-nav>.dropdown>a:hover .caret,.navbar-inverse #header_notifs_icon_wrapper>.dropdown>a:hover .caret,#header_infos #header_notifs_icon_wrapper>.dropdown>a:hover .caret,.navbar-inverse #header_employee_box>.dropdown>a:hover .caret,#header_infos #header_employee_box>.dropdown>a:hover .caret,.navbar-inverse #header_quick>.dropdown>a:hover .caret,#header_infos #header_quick>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret,#header_infos .navbar-nav>.dropdown>a .caret,.navbar-inverse #header_notifs_icon_wrapper>.dropdown>a .caret,#header_infos #header_notifs_icon_wrapper>.dropdown>a .caret,.navbar-inverse #header_employee_box>.dropdown>a .caret,#header_infos #header_employee_box>.dropdown>a .caret,.navbar-inverse #header_quick>.dropdown>a .caret,#header_infos #header_quick>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,#header_infos .navbar-nav>.open>a .caret,.navbar-inverse #header_notifs_icon_wrapper>.open>a .caret,#header_infos #header_notifs_icon_wrapper>.open>a .caret,.navbar-inverse #header_employee_box>.open>a .caret,#header_infos #header_employee_box>.open>a .caret,.navbar-inverse #header_quick>.open>a .caret,#header_infos #header_quick>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,#header_infos .navbar-nav>.open>a:hover .caret,.navbar-inverse #header_notifs_icon_wrapper>.open>a:hover .caret,#header_infos #header_notifs_icon_wrapper>.open>a:hover .caret,.navbar-inverse #header_employee_box>.open>a:hover .caret,#header_infos #header_employee_box>.open>a:hover .caret,.navbar-inverse #header_quick>.open>a:hover .caret,#header_infos #header_quick>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret,#header_infos .navbar-nav>.open>a:focus .caret,.navbar-inverse #header_notifs_icon_wrapper>.open>a:focus .caret,#header_infos #header_notifs_icon_wrapper>.open>a:focus .caret,.navbar-inverse #header_employee_box>.open>a:focus .caret,#header_infos #header_employee_box>.open>a:focus .caret,.navbar-inverse #header_quick>.open>a:focus .caret,#header_infos #header_quick>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header,#header_infos .navbar-nav .open .dropdown-menu>.dropdown-header,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.dropdown-header,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.dropdown-header,.navbar-inverse #header_employee_box .open .dropdown-menu>.dropdown-header,#header_infos #header_employee_box .open .dropdown-menu>.dropdown-header,.navbar-inverse #header_quick .open .dropdown-menu>.dropdown-header,#header_infos #header_quick .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a,#header_infos .navbar-nav .open .dropdown-menu>li>a,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>li>a,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>li>a,.navbar-inverse #header_employee_box .open .dropdown-menu>li>a,#header_infos #header_employee_box .open .dropdown-menu>li>a,.navbar-inverse #header_quick .open .dropdown-menu>li>a,#header_infos #header_quick .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,#header_infos .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>li>a:hover,.navbar-inverse #header_employee_box .open .dropdown-menu>li>a:hover,#header_infos #header_employee_box .open .dropdown-menu>li>a:hover,.navbar-inverse #header_quick .open .dropdown-menu>li>a:hover,#header_infos #header_quick .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,#header_infos .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>li>a:focus,.navbar-inverse #header_employee_box .open .dropdown-menu>li>a:focus,#header_infos #header_employee_box .open .dropdown-menu>li>a:focus,.navbar-inverse #header_quick .open .dropdown-menu>li>a:focus,#header_infos #header_quick .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,#header_infos .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.active>a,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.active>a,.navbar-inverse #header_employee_box .open .dropdown-menu>.active>a,#header_infos #header_employee_box .open .dropdown-menu>.active>a,.navbar-inverse #header_quick .open .dropdown-menu>.active>a,#header_infos #header_quick .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,#header_infos .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:hover,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:hover,.navbar-inverse #header_employee_box .open .dropdown-menu>.active>a:hover,#header_infos #header_employee_box .open .dropdown-menu>.active>a:hover,.navbar-inverse #header_quick .open .dropdown-menu>.active>a:hover,#header_infos #header_quick .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,#header_infos .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:focus,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.active>a:focus,.navbar-inverse #header_employee_box .open .dropdown-menu>.active>a:focus,#header_infos #header_employee_box .open .dropdown-menu>.active>a:focus,.navbar-inverse #header_quick .open .dropdown-menu>.active>a:focus,#header_infos #header_quick .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,#header_infos .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a,.navbar-inverse #header_employee_box .open .dropdown-menu>.disabled>a,#header_infos #header_employee_box .open .dropdown-menu>.disabled>a,.navbar-inverse #header_quick .open .dropdown-menu>.disabled>a,#header_infos #header_quick .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,#header_infos .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:hover,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:hover,.navbar-inverse #header_employee_box .open .dropdown-menu>.disabled>a:hover,#header_infos #header_employee_box .open .dropdown-menu>.disabled>a:hover,.navbar-inverse #header_quick .open .dropdown-menu>.disabled>a:hover,#header_infos #header_quick .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,#header_infos .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:focus,#header_infos #header_notifs_icon_wrapper .open .dropdown-menu>.disabled>a:focus,.navbar-inverse #header_employee_box .open .dropdown-menu>.disabled>a:focus,#header_infos #header_employee_box .open .dropdown-menu>.disabled>a:focus,.navbar-inverse #header_quick .open .dropdown-menu>.disabled>a:focus,#header_infos #header_quick .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link,#header_infos .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,#header_infos .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:17px;list-style:none;background-color:#f5f5f5;border-radius:3px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:17px 0;border-radius:3px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:4px 8px;line-height:1.42857;text-decoration:none;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#1ba6e5;border-color:#1ba6e5;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:15px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:11px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:17px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#1ba6e5}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#1585b8}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty,#header_notifs_icon_wrapper .notifs_badge:empty{display:none}a.badge:hover,#header_notifs_icon_wrapper a.notifs_badge:hover,a.badge:focus,#header_notifs_icon_wrapper a.notifs_badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge,.btn #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper .btn .notifs_badge{position:relative;top:-1px}a.list-group-item.active>.badge,#header_notifs_icon_wrapper a.list-group-item.active>.notifs_badge,.nav-pills>.active>a>.badge,#header_notifs_icon_wrapper .nav-pills>.active>a>.notifs_badge{color:#1ba6e5;background-color:#fff}.nav-pills>li>a>.badge,#header_notifs_icon_wrapper .nav-pills>li>a>.notifs_badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:2.14286;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width: 768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1{font-size:54px}}.thumbnail{display:block;margin-bottom:17px}.thumbnail>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#1ba6e5}.thumbnail .caption{padding:9px;color:#555}.alert,#carrier_wizard .wizard_error{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px}.alert h4,#carrier_wizard .wizard_error h4{margin-top:0;color:inherit}.alert .alert-link,#carrier_wizard .wizard_error .alert-link{font-weight:bold}.alert>p,#carrier_wizard .wizard_error>p,.alert>ul,#carrier_wizard .wizard_error>ul{margin-bottom:0}.alert>p+p,#carrier_wizard .wizard_error>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#c09853}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#a47e3c}.alert-danger,#carrier_wizard .wizard_error{background-color:#f2dede;border-color:#ebccd1;color:#b94a48}.alert-danger hr,#carrier_wizard .wizard_error hr{border-top-color:#e4b9c0}.alert-danger .alert-link,#carrier_wizard .wizard_error .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:17px;margin-bottom:17px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:11px;line-height:17px;color:#fff;text-align:center;background-color:#1ba6e5;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left,.page-head .media>h2.page-title{margin-right:10px}.media>.pull-right,#content h3:not(.modal-title) .media>.panel-heading-action,#content .panel-heading .media>.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .media>.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .media>.panel-heading-action{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group,#dashboard .data_list{margin-bottom:20px;padding-left:0}.list-group-item,#dashboard .data_list li{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child,#dashboard .data_list li:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child,#dashboard .data_list li:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.list-group-item>.badge,#dashboard .data_list li>.badge,#header_notifs_icon_wrapper .list-group-item>.notifs_badge,#dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge,#header_notifs_icon_wrapper #dashboard .data_list li>.notifs_badge{float:right}.list-group-item>.badge+.badge,#dashboard .data_list li>.badge+.badge,#header_notifs_icon_wrapper .list-group-item>.notifs_badge+.badge,#dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.badge,#header_notifs_icon_wrapper #dashboard .data_list li>.notifs_badge+.badge,#header_notifs_icon_wrapper .list-group-item>.badge+.notifs_badge,#dashboard .data_list #header_notifs_icon_wrapper li>.badge+.notifs_badge,#header_notifs_icon_wrapper #dashboard .data_list li>.badge+.notifs_badge,#header_notifs_icon_wrapper .list-group-item>.notifs_badge+.notifs_badge,#dashboard .data_list #header_notifs_icon_wrapper li>.notifs_badge+.notifs_badge,#header_notifs_icon_wrapper #dashboard .data_list li>.notifs_badge+.notifs_badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#1ba6e5;border-color:#1ba6e5}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#d2edfa}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel,#header_notifs_icon_wrapper .notifs_panel,#dash_version{margin-bottom:17px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group,#header_notifs_icon_wrapper .notifs_panel>.list-group,#dash_version>.list-group,#dashboard .panel>.data_list,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list,#dashboard #dash_version>.data_list{margin-bottom:0}.panel>.list-group .list-group-item,#header_notifs_icon_wrapper .notifs_panel>.list-group .list-group-item,#dash_version>.list-group .list-group-item,#dashboard .panel>.data_list .list-group-item,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list .list-group-item,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list .list-group-item,#dashboard #dash_version>.data_list .list-group-item,.panel>.list-group #dashboard .data_list li,#dashboard .data_list .panel>.list-group li,#header_notifs_icon_wrapper .notifs_panel>.list-group #dashboard .data_list li,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel>.list-group li,#dash_version>.list-group #dashboard .data_list li,#dashboard .data_list #dash_version>.list-group li,#dashboard .panel>.data_list li,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list li,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list li,#dashboard #dash_version>.data_list li{border-width:1px 0}.panel>.list-group .list-group-item:first-child,#header_notifs_icon_wrapper .notifs_panel>.list-group .list-group-item:first-child,#dash_version>.list-group .list-group-item:first-child,#dashboard .panel>.data_list .list-group-item:first-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list .list-group-item:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list .list-group-item:first-child,#dashboard #dash_version>.data_list .list-group-item:first-child,.panel>.list-group #dashboard .data_list li:first-child,#dashboard .data_list .panel>.list-group li:first-child,#header_notifs_icon_wrapper .notifs_panel>.list-group #dashboard .data_list li:first-child,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel>.list-group li:first-child,#dash_version>.list-group #dashboard .data_list li:first-child,#dashboard .data_list #dash_version>.list-group li:first-child,#dashboard .panel>.data_list li:first-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list li:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list li:first-child,#dashboard #dash_version>.data_list li:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child,#header_notifs_icon_wrapper .notifs_panel>.list-group .list-group-item:last-child,#dash_version>.list-group .list-group-item:last-child,#dashboard .panel>.data_list .list-group-item:last-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list .list-group-item:last-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list .list-group-item:last-child,#dashboard #dash_version>.data_list .list-group-item:last-child,.panel>.list-group #dashboard .data_list li:last-child,#dashboard .data_list .panel>.list-group li:last-child,#header_notifs_icon_wrapper .notifs_panel>.list-group #dashboard .data_list li:last-child,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel>.list-group li:last-child,#dash_version>.list-group #dashboard .data_list li:last-child,#dashboard .data_list #dash_version>.list-group li:last-child,#dashboard .panel>.data_list li:last-child,#header_notifs_icon_wrapper #dashboard .notifs_panel>.data_list li:last-child,#dashboard #header_notifs_icon_wrapper .notifs_panel>.data_list li:last-child,#dashboard #dash_version>.data_list li:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.list-group .list-group-item:first-child,#dashboard .panel-heading+.data_list .list-group-item:first-child,#header_notifs_icon_wrapper .notifs_panel #dashboard .notifs_panel_header+.data_list .list-group-item:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.data_list .list-group-item:first-child,.panel-heading+.list-group #dashboard .data_list li:first-child,#dashboard .data_list .panel-heading+.list-group li:first-child,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.list-group #dashboard .data_list li:first-child,#dashboard .data_list #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.list-group li:first-child,#dashboard .panel-heading+.data_list li:first-child,#header_notifs_icon_wrapper .notifs_panel #dashboard .notifs_panel_header+.data_list li:first-child,#dashboard #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.data_list li:first-child{border-top-width:0}.panel>.table,#header_notifs_icon_wrapper .notifs_panel>.table,#dash_version>.table,.panel>.table-responsive,#header_notifs_icon_wrapper .notifs_panel>.table-responsive,#dash_version>.table-responsive{margin-bottom:0}.panel>.panel-body+.table,#header_notifs_icon_wrapper .notifs_panel>.panel-body+.table,#dash_version>.panel-body+.table,.panel>.panel-body+.table-responsive,#header_notifs_icon_wrapper .notifs_panel>.panel-body+.table-responsive,#dash_version>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table-bordered,#header_notifs_icon_wrapper .notifs_panel>.table-bordered,#dash_version>.table-bordered,.panel>.table-responsive>.table-bordered,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered,#dash_version>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>thead>tr>th:first-child,#dash_version>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>thead>tr>td:first-child,#dash_version>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tbody>tr>th:first-child,#dash_version>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tbody>tr>td:first-child,#dash_version>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tfoot>tr>th:first-child,#dash_version>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tfoot>tr>td:first-child,#dash_version>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>thead>tr>th:first-child,#dash_version>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>thead>tr>td:first-child,#dash_version>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,#dash_version>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,#dash_version>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,#dash_version>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,#dash_version>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>thead>tr>th:last-child,#dash_version>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>thead>tr>td:last-child,#dash_version>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tbody>tr>th:last-child,#dash_version>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tbody>tr>td:last-child,#dash_version>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tfoot>tr>th:last-child,#dash_version>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tfoot>tr>td:last-child,#dash_version>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>thead>tr>th:last-child,#dash_version>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>thead>tr>td:last-child,#dash_version>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,#dash_version>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,#dash_version>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,#dash_version>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,#dash_version>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>thead>tr:last-child>th,#dash_version>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>thead>tr:last-child>td,#dash_version>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tbody>tr:last-child>th,#dash_version>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>td,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tbody>tr:last-child>td,#dash_version>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tfoot>tr:last-child>th,#dash_version>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,#header_notifs_icon_wrapper .notifs_panel>.table-bordered>tfoot>tr:last-child>td,#dash_version>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>thead>tr:last-child>th,#dash_version>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>thead>tr:last-child>td,#dash_version>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,#dash_version>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,#dash_version>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,#dash_version>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,#header_notifs_icon_wrapper .notifs_panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,#dash_version>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel-heading,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-heading>.dropdown .dropdown-toggle,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:14px}.panel-title>a{color:inherit}.panel-footer,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel-group .panel,.panel-group #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper .panel-group .notifs_panel,.panel-group #dash_version{margin-bottom:0;border-radius:3px;overflow:hidden}.panel-group .panel+.panel,.panel-group #header_notifs_icon_wrapper .notifs_panel+.panel,#header_notifs_icon_wrapper .panel-group .notifs_panel+.panel,.panel-group #dash_version+.panel,.panel-group #header_notifs_icon_wrapper .panel+.notifs_panel,#header_notifs_icon_wrapper .panel-group .panel+.notifs_panel,.panel-group #header_notifs_icon_wrapper .notifs_panel+.notifs_panel,#header_notifs_icon_wrapper .panel-group .notifs_panel+.notifs_panel,.panel-group #header_notifs_icon_wrapper #dash_version+.notifs_panel,#header_notifs_icon_wrapper .panel-group #dash_version+.notifs_panel,.panel-group .panel+#dash_version,.panel-group #header_notifs_icon_wrapper .notifs_panel+#dash_version,#header_notifs_icon_wrapper .panel-group .notifs_panel+#dash_version,.panel-group #dash_version+#dash_version{margin-top:5px}.panel-group .panel-heading,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_header{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_header+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body,.panel-group #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-group .notifs_panel_footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default,#header_notifs_icon_wrapper .notifs_panel{border-color:#ddd}.panel-default>.panel-heading,#header_notifs_icon_wrapper .notifs_panel>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-default>.notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel>.notifs_panel_header{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-default>.notifs_panel_header+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-heading>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel>.panel-heading>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel .panel-default>.notifs_panel_header>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel>.notifs_panel_header>.dropdown .caret{border-color:#333 transparent}.panel-default>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-default>.notifs_panel_footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#1ba6e5}.panel-primary>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-primary>.notifs_panel_header{color:#fff;background-color:#1ba6e5;border-color:#1ba6e5}.panel-primary>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-primary>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#1ba6e5}.panel-primary>.panel-heading>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel .panel-primary>.notifs_panel_header>.dropdown .caret{border-color:#fff transparent}.panel-primary>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-primary>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#1ba6e5}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-success>.notifs_panel_header{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-success>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel .panel-success>.notifs_panel_header>.dropdown .caret{border-color:#468847 transparent}.panel-success>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-success>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-warning>.notifs_panel_header{color:#c09853;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-warning>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel .panel-warning>.notifs_panel_header>.dropdown .caret{border-color:#c09853 transparent}.panel-warning>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-warning>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-danger>.notifs_panel_header{color:#b94a48;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-danger>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel .panel-danger>.notifs_panel_header>.dropdown .caret{border-color:#b94a48 transparent}.panel-danger>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-danger>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading,#header_notifs_icon_wrapper .notifs_panel .panel-info>.notifs_panel_header{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-info>.notifs_panel_header+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading>.dropdown .caret,#header_notifs_icon_wrapper .notifs_panel .panel-info>.notifs_panel_header>.dropdown .caret{border-color:#3a87ad transparent}.panel-info>.panel-footer+.panel-collapse .panel-body,#header_notifs_icon_wrapper .notifs_panel .panel-info>.notifs_panel_footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well,.hook_panel{min-height:20px;padding:19px;margin-bottom:20px;background-color:#ebebeb;border:1px solid #d9d9d9;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote,.hook_panel blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:18px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width: 768px){.modal-dialog{width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:3px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:12px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right !important}.pull-left,.page-head h2.page-title{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-xs.visible-sm{display:block !important}tr.visible-xs.visible-sm{display:table-row !important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-xs.visible-md{display:block !important}tr.visible-xs.visible-md{display:table-row !important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-xs.visible-lg{display:block !important}tr.visible-xs.visible-lg{display:table-row !important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell !important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none !important}@media (max-width: 767px){.visible-sm.visible-xs{display:block !important}tr.visible-sm.visible-xs{display:table-row !important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-sm.visible-md{display:block !important}tr.visible-sm.visible-md{display:table-row !important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-sm.visible-lg{display:block !important}tr.visible-sm.visible-lg{display:table-row !important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell !important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none !important}@media (max-width: 767px){.visible-md.visible-xs{display:block !important}tr.visible-md.visible-xs{display:table-row !important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-md.visible-sm{display:block !important}tr.visible-md.visible-sm{display:table-row !important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-md.visible-lg{display:block !important}tr.visible-md.visible-lg{display:table-row !important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell !important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none !important}@media (max-width: 767px){.visible-lg.visible-xs{display:block !important}tr.visible-lg.visible-xs{display:table-row !important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-lg.visible-sm{display:block !important}tr.visible-lg.visible-sm{display:table-row !important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-lg.visible-md{display:block !important}tr.visible-lg.visible-md{display:table-row !important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-lg{display:block !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}.hidden-xs,#header_notifs_icon_wrapper{display:block !important}tr.hidden-xs,tr#header_notifs_icon_wrapper{display:table-row !important}th.hidden-xs,th#header_notifs_icon_wrapper,td.hidden-xs,td#header_notifs_icon_wrapper{display:table-cell !important}@media (max-width: 767px){.hidden-xs,#header_notifs_icon_wrapper,tr.hidden-xs,tr#header_notifs_icon_wrapper,th.hidden-xs,th#header_notifs_icon_wrapper,td.hidden-xs,td#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-xs.hidden-sm,.hidden-sm#header_notifs_icon_wrapper,tr.hidden-xs.hidden-sm,tr.hidden-sm#header_notifs_icon_wrapper,th.hidden-xs.hidden-sm,th.hidden-sm#header_notifs_icon_wrapper,td.hidden-xs.hidden-sm,td.hidden-sm#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-xs.hidden-md,.hidden-md#header_notifs_icon_wrapper,tr.hidden-xs.hidden-md,tr.hidden-md#header_notifs_icon_wrapper,th.hidden-xs.hidden-md,th.hidden-md#header_notifs_icon_wrapper,td.hidden-xs.hidden-md,td.hidden-md#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 1200px){.hidden-xs.hidden-lg,.hidden-lg#header_notifs_icon_wrapper,tr.hidden-xs.hidden-lg,tr.hidden-lg#header_notifs_icon_wrapper,th.hidden-xs.hidden-lg,th.hidden-lg#header_notifs_icon_wrapper,td.hidden-xs.hidden-lg,td.hidden-lg#header_notifs_icon_wrapper{display:none !important}}.hidden-sm{display:block !important}tr.hidden-sm{display:table-row !important}th.hidden-sm,td.hidden-sm{display:table-cell !important}@media (max-width: 767px){.hidden-sm.hidden-xs,.hidden-sm#header_notifs_icon_wrapper,tr.hidden-sm.hidden-xs,tr.hidden-sm#header_notifs_icon_wrapper,th.hidden-sm.hidden-xs,th.hidden-sm#header_notifs_icon_wrapper,td.hidden-sm.hidden-xs,td.hidden-sm#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-sm.hidden-md,tr.hidden-sm.hidden-md,th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none !important}}.hidden-md{display:block !important}tr.hidden-md{display:table-row !important}th.hidden-md,td.hidden-md{display:table-cell !important}@media (max-width: 767px){.hidden-md.hidden-xs,.hidden-md#header_notifs_icon_wrapper,tr.hidden-md.hidden-xs,tr.hidden-md#header_notifs_icon_wrapper,th.hidden-md.hidden-xs,th.hidden-md#header_notifs_icon_wrapper,td.hidden-md.hidden-xs,td.hidden-md#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-md.hidden-sm,tr.hidden-md.hidden-sm,th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-md.hidden-lg,tr.hidden-md.hidden-lg,th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none !important}}.hidden-lg{display:block !important}tr.hidden-lg{display:table-row !important}th.hidden-lg,td.hidden-lg{display:table-cell !important}@media (max-width: 767px){.hidden-lg.hidden-xs,.hidden-lg#header_notifs_icon_wrapper,tr.hidden-lg.hidden-xs,tr.hidden-lg#header_notifs_icon_wrapper,th.hidden-lg.hidden-xs,th.hidden-lg#header_notifs_icon_wrapper,td.hidden-lg.hidden-xs,td.hidden-lg#header_notifs_icon_wrapper{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-lg.hidden-md,tr.hidden-lg.hidden-md,th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none !important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none !important}@media print{.visible-print{display:block !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none !important}}/*! * Font Awesome 3.2.1 * the iconic font designed for Bootstrap * ------------------------------------------------------------------------------ @@ -30,10 +30,10 @@ * Email: dave@fontawesome.io * Twitter: http://twitter.com/byscuits * Work: Lead Product Designer @ Kyruus - http://kyruus.com - */@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,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right}.pull-left,.page-head h2.page-title{float:left}[class^="icon-"].pull-left,.page-head h2[class^="icon-"].page-title,[class*=" icon-"].pull-left,.page-head h2[class*=" icon-"].page-title{margin-right:.3em}[class^="icon-"].pull-right,#content h3:not(.modal-title) [class^="icon-"].panel-heading-action,#content .panel-heading [class^="icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].panel-heading-action,[class*=" icon-"].pull-right,#content h3:not(.modal-title) [class*=" icon-"].panel-heading-action,#content .panel-heading [class*=" icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].panel-heading-action{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-"],#header_infos .nav>.active>a>[class^="icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class^="icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class^="icon-"],.navbar-inverse #header_employee_box>.active>a>[class^="icon-"],#header_infos #header_employee_box>.active>a>[class^="icon-"],.navbar-inverse #header_quick>.active>a>[class^="icon-"],#header_infos #header_quick>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],#header_infos .nav>.active>a>[class*=" icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],.navbar-inverse #header_employee_box>.active>a>[class*=" icon-"],#header_infos #header_employee_box>.active>a>[class*=" icon-"],.navbar-inverse #header_quick>.active>a>[class*=" icon-"],#header_infos #header_quick>.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,#header_notifs_icon_wrapper [class^="icon-"].icon-large,#header_employee_box [class^="icon-"].icon-large,#header_quick [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large,#header_notifs_icon_wrapper [class*=" icon-"].icon-large,#header_employee_box [class*=" icon-"].icon-large,#header_quick [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .btn [class^="icon-"].data_value:before,.nav [class^="icon-"].icon-spin,#header_notifs_icon_wrapper [class^="icon-"].icon-spin,#header_employee_box [class^="icon-"].icon-spin,#header_quick [class^="icon-"].icon-spin,.nav #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .nav [class^="icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class^="icon-"].data_value:before,#header_employee_box #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_employee_box [class^="icon-"].data_value:before,#header_quick #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_quick [class^="icon-"].data_value:before,.btn [class*=" icon-"].icon-spin,.btn #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .btn [class*=" icon-"].data_value:before,.nav [class*=" icon-"].icon-spin,#header_notifs_icon_wrapper [class*=" icon-"].icon-spin,#header_employee_box [class*=" icon-"].icon-spin,#header_quick [class*=" icon-"].icon-spin,.nav #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .nav [class*=" icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class*=" icon-"].data_value:before,#header_employee_box #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_employee_box [class*=" icon-"].data_value:before,#header_quick #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_quick [class*=" icon-"].data_value:before{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn h2[class^="icon-"].icon-2x.page-title,.btn [class*=" icon-"].pull-left.icon-2x,.btn .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn h2[class*=" icon-"].icon-2x.page-title,.btn [class^="icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn [class*=" icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn #dashboard .loading [class^="icon-"].icon-large.data_value:before,#dashboard .loading .btn [class^="icon-"].icon-large.data_value:before,.btn [class*=" icon-"].icon-spin.icon-large,.btn #dashboard .loading [class*=" icon-"].icon-large.data_value:before,#dashboard .loading .btn [class*=" icon-"].icon-large.data_value:before{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class^="icon-"].icon-2x.page-title,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class*=" icon-"].icon-2x.page-title,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small [class*=" icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{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,#dashboard .loading .data_value:before{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,a #dashboard .loading .data_value:before,#dashboard .loading a .data_value:before{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,.process-icon-cancel: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,.icon-AdminAdmin:before,.process-icon-configure:before{content:"\f013"}.icon-trash:before,.process-icon-delete: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,.process-icon-save-date:before,.process-icon-save-status: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,.process-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,.icon-AdminPriceRule:before{content:"\f02c"}.icon-book:before,.icon-AdminCatalog: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,.process-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,.process-icon-newCombination.toolbar-new:before{content:"\f055"}.icon-minus-sign:before,.process-icon-newCombination.toolbar-cancel:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before,.process-icon-help:before,.process-icon-help-new: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,.process-icon-new-module: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,.process-icon-preview:before,.process-icon-previewURL: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,.icon-AdminParentStats:before,.process-icon-stats: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,.icon-AdminTools: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,.icon-AdminParentOrders: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,.process-icon-back: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,.icon-AdminParentLocalization:before{content:"\f0ac"}.icon-wrench:before,.icon-AdminParentPreferences: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,.icon-AdminParentCustomer: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,.process-icon-duplicate:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before,.process-icon-save:before,.process-icon-save-and-stay:before,.process-icon-save-and-preview: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,.icon-AdminParentShipping: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,.icon-AdminDashboard: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,.process-icon-partial_refund:before{content:"\f0ec"}.icon-cloud-download:before,.process-icon-export:before{content:"\f0ed"}.icon-cloud-upload:before,.process-icon-import: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,.process-icon-newAttributes:before,.process-icon-new:before,.process-icon-new-url: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,#nav-sidebar ul.menu li.maintab.expanded span.submenu_expand:before{content:"\f106"}.icon-angle-down:before,#nav-sidebar ul.menu li.maintab span.submenu_expand: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,.icon-AdminParentModules:before,.process-icon-modules-list: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,.process-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,.icon-AdminStock:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}html,body{min-height:100%;height:100%}#main{min-height:100%;padding:36px 0 60px;margin:0 0 -60px 0;background-color:#f8f8f8;background-image:url("../img/patterns/bedge_grunge.png")}#content{padding:80px 20px 0;margin-left:240px;-webkit-transition-property:margin;-moz-transition-property:margin;-o-transition-property:margin;transition-property:margin;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#content fieldset,#content .panel,#content #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #content .notifs_panel,#content #dash_version{padding:20px;margin-bottom:20px;border:solid 1px #dfdfdf;background-color:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset;box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset}#content h3:not(.modal-title),#content .panel-heading:not(.modal-title),#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title),#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title),#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{border:none;padding:0 5px;margin:-16px -16px 15px -16px;color:contrasted(#e6e8e3);font-size:1.2em;line-height:30px;font-weight:300;text-transform:uppercase;background-color:#fff;border-bottom:solid 1px #ccc}#content h3:not(.modal-title) i,#content .panel-heading:not(.modal-title) i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) i,#content h3:not(.modal-title) a,#content .panel-heading:not(.modal-title) a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) a,#content .panel-heading i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header i,#content .panel-heading a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header a{color:contrasted(#e6e8e3)}#content h3:not(.modal-title) .badge,#content .panel-heading:not(.modal-title) .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .badge,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content h3:not(.modal-title) .notifs_badge,#content .panel-heading:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading:not(.modal-title) .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .notifs_badge,#content .panel-heading .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .badge,#content .panel-heading #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_badge{background-color:#1ba6e5;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;height:29px;line-height:25px;font-size:1.3em;margin-right:7px;font-weight:300;float:left;margin-left:-5px}#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{margin-right:-5px}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn{float:left;height:30px;width:30px;color:#1ba6e5;border-left:solid 1px #ccc}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover{text-decoration:none;color:#000}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn i{text-align:center;font-size:1.3em;line-height:30px}#content .panel-danger .panel-heading,#content .panel-danger #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .panel-danger .notifs_panel_header{background-color:#8bc954 !important}#content form .alert,#content form #carrier_wizard .wizard_error,#carrier_wizard #content form .wizard_error{clear:both}@media (max-width: 768px){#content{margin-left:0;width:100%}}#nobootstrap{float:left}.data-focus.data-focus-primary{background-color:#1ba6e5;color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}#customer_part .customerCard.selected-customer .panel,#customer_part .customerCard.selected-customer #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #customer_part .customerCard.selected-customer .notifs_panel,#customer_part .customerCard.selected-customer #dash_version{color:#5cb85c;border:solid 2px #5cb85c}body.display-modal #content,body.display-modal #main{margin:0;padding:0;background:#f8f8f8}#content .panel .panel-footer,#content #header_notifs_icon_wrapper .notifs_panel .panel-footer,#header_notifs_icon_wrapper #content .notifs_panel .panel-footer,#content #dash_version .panel-footer,#header_notifs_icon_wrapper .notifs_panel #content .panel .notifs_panel_footer,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper #content .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #content #dash_version .notifs_panel_footer{margin:15px -20px -20px;height:73px}.panel-footer .btn.pull-right,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.pull-right,.panel-footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-footer .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action,.panel-footer #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action{margin-left:3px}.attributes-color-container{width:40px;height:25px;display:block;border:solid 1px #000}#header_infos{background-color:#242424}#header_shopname{font:300 1.3em/100% "Ubuntu",sans-serif;position:relative;padding:0 0 0 45px;margin:0 20px 0 0;height:37px;line-height:37px}#header_shopname img{position:absolute;top:0;left:0;width:37px;height:37px}#header_notifs_icon_wrapper li a{padding:9px 5px}#header_notifs_icon_wrapper>li>a>i{font-size:1.4em;color:#fff;vertical-align:middle}#header_notifs_icon_wrapper .notifs_badge{background-color:#8bc954}#header_notifs_icon_wrapper .notifs_dropdown{background-color:transparent;border:none;box-shadow:none}#header_notifs_icon_wrapper .notifs_panel{width:300px;-webkit-box-shadow:rgba(0,0,0,0.5) 2px 2px 8px;box-shadow:rgba(0,0,0,0.5) 2px 2px 8px}#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header h3,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_header{padding:0;font-size:1.3em;margin:0}#header_nav_toggle{background-color:#000;border:none;color:#fff}#header_employee_box a img{margin-right:5px}#header_employee_box #header_foaccess i{font-size:1.2em}#header_search{width:160px;padding:0 0 0 10px;position:relative}@media (max-width: 768px){#header_search{width:100%}}#header_search input,#header_search .form-group{margin:0}#header_search .form-group.focus-search{position:absolute;z-index:900;top:0;left:10px;width:400px}.employee_name{position:relative;padding-left:34px !important}.employee_avatar_small{height:30px;width:30px;display:inline-block;position:absolute;top:4px;left:0}.employee_avatar_small img{width:100%;height:100%;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}.employee_avatar{height:100px;width:100px;display:block;margin:10px auto 10px auto;overflow:hidden;-webkit-border-radius:120px;-moz-border-radius:120px;-ms-border-radius:120px;-o-border-radius:120px;border-radius:120px;-webkit-box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px;box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px}.employee_avatar img{width:100%;height:100%}#footer{z-index:600;display:block;width:100%;background-color:rgba(36,36,36,0.85);color:#888;position:fixed;bottom:0;height:50px;line-height:50px}#footer a{color:#ccc}#footer #go-top{position:fixed;bottom:10px;height:30px;width:30px;text-align:center;line-height:30px;right:10px;z-index:9003;display:block;padding:0px 6px 0px 6px;margin:-2px 0px 0px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;background-color:rgba(0,0,0,0.5)}#footer #go-top:hover{background-color:#000}#footer .social-networks{margin:4px 0 0 0}a.link-social i{font-size:2em;width:30px;height:30px;display:inline-block;line-height:30px;text-align:center;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}a.link-social:hover{text-decoration:none}.link-twitter i{color:#fff;background-color:#7cceef}.link-twitter i:hover{color:#7cceef;background-color:#fff}.link-facebook i{color:#fff;background-color:#557dbb}.link-facebook i:hover{color:#557dbb;background-color:#fff}.link-github i{color:#000;background-color:#fff}.link-github i:hover{color:#fff;background-color:#000}.link-google i{color:#fff;background-color:#e6644e}.link-google i:hover{color:#e6644e;background-color:#fff}#nav-sidebar{position:fixed;width:240px;height:100% !important;overflow-y:auto;z-index:500;background-color:#515561;border-right:1px solid #000}#nav-sidebar li.maintab>a>i{display:inline-block;height:30px;width:30px;font-size:20px;line-height:30px;color:#fff;text-align:center;-webkit-border-radius:40px;-moz-border-radius:40px;-ms-border-radius:40px;-o-border-radius:40px;border-radius:40px}#nav-sidebar li:not(.active) ul{display:none}#nav-sidebar li.active span.submenu_expand{display:none}#nav-sidebar ul.menu{margin:0 0 100px 0;padding:0;border-top:1px #000 solid;list-style:none}#nav-sidebar ul.menu li.maintab{position:relative}#nav-sidebar ul.menu li.maintab.active a.title,#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff;background-color:#1ba6e5}#nav-sidebar ul.menu li.maintab.active a.title i,#nav-sidebar ul.menu li.maintab.active a.title:hover i{color:#000;background-color:#fff}#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff}#nav-sidebar ul.menu li.maintab.expanded a.title{color:#fff;background-color:#3a3d45;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded a.title:hover{background-color:#686d7d}#nav-sidebar ul.menu li.maintab.expanded a.title i{color:#fff}#nav-sidebar ul.menu li.maintab.expanded ul.submenu{display:block}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a{color:#9da1ae;background-color:#2e3037;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a:hover{color:#fff;background-color:#454953}#nav-sidebar ul.menu li.maintab a.title{display:block;position:relative;padding:2px 0 2px 8px;border-bottom:1px solid #3a3d45;font-size:12px;line-height:28px;color:#cacccf;background-color:#515561;text-transform:uppercase;text-decoration:none;-webkit-transition-property:background-color,border,box-shadow;-moz-transition-property:background-color,border,box-shadow;-o-transition-property:background-color,border,box-shadow;transition-property:background-color,border,box-shadow;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title i{color:#9094a2;background-color:#17181c;-webkit-transition-property:color;-moz-transition-property:color;-o-transition-property:color;transition-property:color;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title:hover{background-color:#686d7d;color:#fff}#nav-sidebar ul.menu li.maintab a.title:hover i{color:#fff}#nav-sidebar ul.menu li.maintab span.submenu_expand{position:absolute;right:10px;top:2px;cursor:pointer;font-family:FontAwesome;font-size:24px;font-weight:100;color:#000;background-color:transparent;text-shadow:#686d7d 1px 1px 0}#nav-sidebar ul.menu li.maintab span.submenu_expand:hover{color:#fff;text-shadow:#232429 -1px -1px 0}#nav-sidebar ul.submenu{list-style:none;padding:0}#nav-sidebar ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;border:none;border-bottom:solid 1px #eee;background-color:#fff}#nav-sidebar ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-sidebar ul.submenu li:last-child a{border-bottom:none}#nav-sidebar ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}@media (max-width: 768px){#nav-sidebar{display:none}}#nav-topbar{position:fixed;height:28px;top:38px;left:80;width:100%;padding:0 40px 0 0;z-index:600;background-color:#fff}#nav-topbar ul.menu{margin:0;padding:0;display:block;list-style:none}#nav-topbar ul.menu li.maintab,#nav-topbar ul.menu li.subtab{height:28px;padding:0;margin:0;list-style:none;position:relative;float:left}#nav-topbar ul.menu li.maintab>a,#nav-topbar ul.menu li.subtab>a{display:block;line-height:30px;color:#515561;padding:0 6px;margin:0;font-size:12px}#nav-topbar ul.menu li.maintab>a i,#nav-topbar ul.menu li.subtab>a i{margin:0;width:15px;background-color:transparent;font-size:14px}#nav-topbar ul.menu li.maintab.active,#nav-topbar ul.menu li.maintab:hover,#nav-topbar ul.menu li.subtab.active,#nav-topbar ul.menu li.subtab:hover{background-color:#1ba6e5}#nav-topbar ul.menu li.maintab.active>a,#nav-topbar ul.menu li.maintab:hover>a,#nav-topbar ul.menu li.subtab.active>a,#nav-topbar ul.menu li.subtab:hover>a{text-decoration:none;color:#fff}#nav-topbar ul.menu li.maintab.active>a i,#nav-topbar ul.menu li.maintab:hover>a i,#nav-topbar ul.menu li.subtab.active>a i,#nav-topbar ul.menu li.subtab:hover>a i{color:#fff}#nav-topbar ul.menu li.expanded>ul.submenu{display:block}#nav-topbar ul.menu ul.submenu{background-color:#fff;-webkit-box-shadow:rgba(0,0,0,0.3) 0 2px 4px;box-shadow:rgba(0,0,0,0.3) 0 2px 4px;display:none;position:absolute;margin:0;padding:0;left:0;top:28px;width:200px !important}#nav-topbar ul.menu ul.submenu>li{width:200px;padding:0;list-style:none}#nav-topbar ul.menu ul.submenu>li>a{display:block;padding:4px 5px 4px 10px;font-size:12px;border-bottom:solid 1px #eee}#nav-topbar ul.menu ul.submenu>li>a:hover{color:#fff;background-color:#1ba6e5;text-decoration:none}#nav-topbar ul.menu ul.submenu>li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}#nav-topbar #ellipsistab{display:block;width:40px;height:28px;padding:0;margin:0;position:absolute;right:0}#nav-topbar #ellipsistab>a{text-align:center;font-size:15px;line-height:30px;color:#515561;cursor:pointer}#nav-topbar #ellipsistab ul#ellipsis_submenu{right:0;left:inherit}#nav-topbar #ellipsistab ul#ellipsis_submenu a.title{padding:0 8px;text-align:left}#nav-topbar #ellipsistab ul#ellipsis_submenu li.subtab.expanded>ul{left:-200px;top:0}#nav-topbar .menu-collapse{display:none}.menu-collapse{height:54px;width:100%;font-size:2em;text-align:center;line-height:55px;display:block;background-color:#515561;border-bottom:3px solid #3a3d45;color:#0b0c0e}.page-topbar #main{padding-top:64px}.page-topbar #nav-sidebar{display:none}.page-topbar .page-head{top:66px}.page-topbar #content{margin-left:0;width:100%}.page-topbar #content .page-head h2.page-title{padding:0 0 0 20px}.page-sidebar-closed #nav-sidebar{overflow:visible;width:50px;-webkit-transition-property:width;-moz-transition-property:width;-o-transition-property:width;transition-property:width;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-sidebar-closed #nav-sidebar span.title{display:none}.page-sidebar-closed #nav-sidebar ul.submenu{display:none !important;padding-top:37px;position:relative;top:0;-webkit-box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px;box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px}.page-sidebar-closed #nav-sidebar>ul>li:hover{width:250px !important;position:relative}.page-sidebar-closed #nav-sidebar>ul>li:hover span.title{display:inline-block}.page-sidebar-closed #nav-sidebar>ul>li:hover ul.submenu{display:block !important;position:absolute;left:50px;width:200px !important}.page-sidebar-closed #content{margin-left:50px}.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 70px}@media (max-width: 768px){.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 20px}}@media (max-width: 768px){.page-sidebar-closed #content{margin-left:0;width:100%}}.page-sidebar-closed .submenu_expand{display:none}[class^="icon-Admin"]{margin-right:6px}.fixed-width-xs{width:40px !important}.fixed-width-sm{width:80px !important}.fixed-width-md{width:120px !important}.fixed-width-lg{width:160px !important}.fixed-width-xl{width:200px !important}.fixed-width-xxl{width:250px !important}.row-margin-bottom{margin-bottom:15px}.row-padding-top{padding-top:15px}.thumbnail,.img-thumbnail,.thumbnail{background-color:#fff;border-color:#ccc !important}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{background-color:#8fc04d}#header_notifs_icon_wrapper .badge-success.notifs_badge,.badge-success.badge{background-color:#5cb85c}#header_notifs_icon_wrapper .badge-error.notifs_badge,.badge-error.badge{background-color:#d9534f}.nav-tabs{border-bottom:none}.nav-tabs li a{font-size:1.1em;font-family:"Ubuntu",sans-serif;text-transform:uppercase;font-weight:300}.nav-tabs li.active a,.nav-tabs li.active a:hover,.nav-tabs li.active a:focus{background-color:#fff}.alert.alert-danger,#carrier_wizard .wizard_error{padding-left:60px;position:relative}.alert.alert-danger:before,#carrier_wizard .wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00d"}.alert.alert-success,#carrier_wizard .alert-success.wizard_error{padding-left:60px;position:relative}.alert.alert-success:before,#carrier_wizard .alert-success.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00c"}.alert.alert-info,#carrier_wizard .alert-info.wizard_error{padding-left:60px;position:relative}.alert.alert-info:before,#carrier_wizard .alert-info.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\F05A"}.overflow-y{height:200px;overflow-y:auto}.table{border-collapse:separate;border-spacing:0 2px 0 0;margin-bottom:5px}.table thead>tr>th{border:none;font-weight:normal;vertical-align:top;border-bottom:solid 1px #8bc6e7}.table thead>tr>th span.title_box{color:#000;font-size:1.1em;font-weight:bold;display:block;word-wrap:nowrap;white-space:nowrap}.table thead>tr>th span.title_box.active{font-weight:bold}.table thead>tr>th span.title_box a{text-decoration:none}.table thead>tr>th span.title_box a.active{color:#000}.table input,.table select{margin:0}.table tbody>tr>td{border-top:none;background-color:#fff}.table tbody>tr>td{padding:3px 7px;vertical-align:middle;word-wrap:nowrap;font-size:12px;border-bottom:solid 1px #eee}.table td.center,.table th.center{text-align:center}.table td.pointer{cursor:pointer}tr.filter{background-color:#dfeff8}tr.filter input[type="text"].filter,tr.filter input[type="password"].filter,tr.filter select.filter{font-size:12px;border-color:#a0d0eb}tr.highlighted td{background-color:#1ba6e5 !important;color:#fff}td.actions{min-width:200px}.bulk-actions{margin:17px 0 0 0}.tree{padding:0 0 0 20px;list-style:none}.tree input{margin-right:4px}.tree i{font-size:1.3em}.tree .tree-item-name,.tree .tree-folder-name{padding:0 5px;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;font-weight:normal}.tree .tree-item-name:hover,.tree .tree-folder-name:hover{background-color:#eee;cursor:pointer}.tree .tree-selected{background-color:#a4dcf5}.tree .tree-selected i.tree-dot{background-color:#1ba6e5}.tree i.tree-dot{display:inline-block;position:relative;width:6px;height:6px;margin:0 4px 0 6px;background-color:#ccc;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.tree .tree-item-disable,.tree .tree-folder-name-disable{color:#ccc}.tree .tree-item-disable:hover,.tree .tree-folder-name-disable:hover{color:#ccc;background-color:none}.tree-actions{padding-bottom:4px;display:inline-block}.tree-panel-heading-controls{margin:-20px -20px 20px;padding:5px;border-bottom:solid 1px #dfdfdf}label.control-label{font-size:13px;font-weight:normal;color:#666}label.control-label span.label-tooltip{text-decoration:none;font-size:13px;background-color:#ebebeb;border:none;border-bottom:solid 1px #dfdfdf;padding:0 5px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}label.required:before{content:"*";color:red;font-size:14px;position:relative;line-height:12px}.tooltip{font-size:12px}select.input-tiny,input[type="text"].input-tiny,input[type="password"].input-tiny{width:80px;float:left}textarea{resize:none}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{background-color:#fefbe2;-webkit-box-shadow:none;box-shadow:none}.btn{text-transform:uppercase}.btn .caret{border-top-color:#333 !important}.btn:hover .caret,.btn:focus .caret{border-top-color:#fff !important}.btn.btn-default{-webkit-box-shadow:#e6e6e6 0 -2px 0 inset;box-shadow:#e6e6e6 0 -2px 0 inset}.btn.btn-default:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default:hover i{color:#fff}.btn.btn-primary{background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default[disabled]{border-color:#999;color:#999;background-color:#f2f2f2;-webkit-box-shadow:#ccc 0 -2px 0 inset;box-shadow:#ccc 0 -2px 0 inset}.dropdown-menu{text-align:left}.btn-group-action{width:160px;float:right}.btn-group-action .btn-group{float:right}.btn-group-action a{text-decoration:none}.tt-query{border-bottom-right-radius:3px !important;border-top-right-radius:3px !important}.tt-dropdown-menu{background-color:#fff;border:solid 1px #ccc;font-size:0.9em;text-transform:none}.tt-suggestions{padding:0 6px;-webkit-box-shadow:rgba(0,0,0,0.25) 0 1px 4px;box-shadow:rgba(0,0,0,0.25) 0 1px 4px}.tt-suggestion p{border-bottom:solid 1px #ccc;margin:0 !important;padding:0 !important}.tt-suggestion:last-child p{border-bottom:none}.tagify-container{background-color:#fff;padding:2px 6px;min-height:30px;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;border:solid 1px #ccc;-webkit-box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset;box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset}.tagify-container span{float:left}.tagify-container>span{display:inline-block;padding:3px 5px;margin:3px;border-radius:2px;border:1px solid #1ba6e5;background-color:#60c1ed;color:#fff}.tagify-container>span>a{padding-left:5px;color:#1ba6e5;text-decoration:none;font-weight:bold}.tagify-container>input{margin-top:2px;border:0 none;width:100px;-webkit-box-shadow:none;box-shadow:none}.tagify-container>input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.box-stats{background-color:#fff}.box-stats .boxchart-overlay{padding:10px 10px 5px 10px;margin-right:10px;float:left;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats i{float:left;height:64px;width:64px;margin-right:10px;color:#fff;font-size:35px;text-align:center;line-height:64px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats .title{color:#666;display:block}.box-stats .value{font-size:22px}.box-stats small{line-height:0.3em;color:#aaa;text-transform:uppercase}.box-stats:hover{text-decoration:none}.color1 i,.color1 .boxchart-overlay{background-color:#2ba8e3;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color1 .value{color:#2ba8e3}.color2 i,.color2 .boxchart-overlay{background-color:#ff5450;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color2 .value{color:#ff5450}.color3 i,.color3 .boxchart-overlay{background-color:#9e5ba1;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color3 .value{color:#9e5ba1}.color4 i,.color4 .boxchart-overlay{background-color:#95cc6b;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color4 .value{color:#95cc6b}.data_chart rect{fill:#fff}.data_chart path{stroke:#fff;stroke-width:2;fill:none}.data_chart line{stroke:#000}.data_chart .area{fill:rgba(255,255,255,0.3);stroke-width:0}.icon-big{font-size:4em;color:#c5c5c5}.switch .slide-button,.toggle p span{display:none}.switch{background-color:#d2d2d2;border-radius:3px}.switch label{padding:0;cursor:pointer}@media only screen{.toggle{position:relative;padding:0;margin-left:100px}.toggle label{position:relative;z-index:3;display:block;width:100%}.toggle input{position:absolute;opacity:0;z-index:5}.toggle p{position:absolute;left:-100px;width:100%;margin:0;padding-right:100px;text-align:left}.toggle p span{position:absolute;top:0;left:0;z-index:5;display:block;width:50%;margin-left:100px;text-align:center}.toggle:last-child{left:50%}.toggle .slide-button{position:absolute;right:0;top:0;z-index:4;display:block;width:50%;height:100%;padding:0}.switch{position:relative;padding:0}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center}.switch .slide-button{position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch.switch-three label,.switch.switch-three .slide-button{width:33.3%}.switch.switch-three input:checked:nth-of-type(2) ~ .slide-button{left:33.3%}.switch.switch-three input:checked:last-of-type ~ .slide-button{left:66.6%}.switch.switch-four label,.switch.switch-four .slide-button{width:25%}.switch.switch-four input:checked:nth-of-type(2) ~ .slide-button{left:25%}.switch.switch-four input:checked:nth-of-type(3) ~ .slide-button{left:50%}.switch.switch-four input:checked:last-of-type ~ .slide-button{left:75%}.switch.switch-five label,.switch.switch-five .slide-button{width:20%}.switch.switch-five input:checked:nth-of-type(2) ~ .slide-button{left:20%}.switch.switch-five input:checked:nth-of-type(3) ~ .slide-button{left:40%}.switch.switch-five input:checked:nth-of-type(4) ~ .slide-button{left:60%}.switch.switch-five input:checked:last-of-type ~ .slide-button{left:80%}.toggle,.switch{display:block;height:27px}.switch *,.toggle *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.switch .slide-button,.toggle .slide-button{display:block;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-ms-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.toggle label,.toggle p,.switch label{line-height:27px;vertical-align:middle}.toggle input:checked ~ .slide-button{right:50%}.toggle input:focus ~ .slide-button,.switch input:focus+label{outline:1px dotted #888}.switch,.toggle{-webkit-animation:bugfix infinite 1s}.prestashop-switch{min-width:150px;color:#666;text-align:center;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset;box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset}.prestashop-switch label{padding-top:0 !important;font-weight:500}.prestashop-switch input:checked+label{color:#333 !important;text-shadow:rgba(255,255,255,0.7) 1px 1px 0}.prestashop-switch input:not(:checked)+label i{color:#666 !important}.prestashop-switch .slide-button{position:relative;margin-right:3px;color:#fff}.prestashop-switch p{color:#333}.prestashop-switch span{color:#fff}}.page-head{width:100%;height:55px;padding:0 10px 0 0;margin:0;border-bottom:4px solid #75a139;position:fixed;top:36px;left:0px;z-index:499;background-color:#8fc04d;-webkit-box-shadow:rgba(0,0,0,0.15) 0 7px 0;box-shadow:rgba(0,0,0,0.15) 0 7px 0}.page-head h2.page-title{padding:0 0 0 260px;font-size:18px;color:#fff;text-transform:uppercase}@media (max-width: 768px){.page-head h2.page-title{padding:0 0 0 20px}}.page-head h2.page-title a{border-bottom:dotted 1px #fff}.page-head h2.page-title a:hover{color:#000;border-color:#000}.page-head a{color:#fff;text-decoration:none}.page-head .btn-toolbar{margin:0;padding:3px 0 0 0}.page-head .btn-toolbar .nav-tabs{margin:0}.page-head .btn-toolbar .nav-tabs>li>a{color:#333}.toolbar_btn{position:relative;padding:2px 5px !important;margin-right:3px;font-size:12px;font-weight:600;color:#fff;text-align:center;text-shadow:none}.toolbar_btn:hover{color:#8fc04d;border-color:#fff;background-color:#fff !important}[class^="process-icon-"],[class*=" process-icon-"]{height:25px;min-width:32px;background-position:center;background-repeat:no-repeat;display:block;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:25px;line-height:25px;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:0.3em}.page-header-toolbar-back{border:none !important;display:inline-block}#datepicker .input-selected{margin:0}#datepicker #date-start.input-selected,#datepicker #date-end.input-selected{border:solid 3px #00a4e7}#datepicker #date-start-compare.input-selected,#datepicker #date-end-compare.input-selected{border:solid 3px #ff8000}#datepicker div#datepicker-form #date-range{border:solid 1px #0092ce}#datepicker div#datepicker-form #date-range .form-date-heading{background-color:#0092ce}#datepicker div#datepicker-form #date-compare{border:solid 1px #e67300}#datepicker div#datepicker-form #date-compare .form-date-heading{background-color:#e67300}#datepicker div#datepicker-form .form-date-heading{height:30px;line-height:30px;padding:0 0 0 8px}#datepicker div#datepicker-form .form-date-heading .title,#datepicker div#datepicker-form .form-date-heading .checkbox-title label{font-size:1.15em;color:#fff;font-weight:200;text-transform:uppercase;line-height:2em}#datepicker div#datepicker-form .form-date-heading .btn-default{background-color:rgba(255,255,255,0.3);font-weight:700;color:#fff;border:none}#datepicker div#datepicker-form .form-date-heading select{margin:2px 2px 0 0}#datepicker div#datepicker-form .form-date-body,#datepicker div#datepicker-form .form-date-actions{width:100%;padding:10px;background-color:#fff;display:inline-block}#datepicker div#datepicker-form .form-date-actions{border:solid 1px #ccc}#datepicker div#datepicker-form .form-date-group{clear:both;width:100%;margin:0 auto 6px auto}#datepicker div#datepicker-form .form-date-group label{font-size:0.8em;font-weight:700;text-transform:uppercase;color:#666}#datepicker div#datepicker-form .form-date-group input{margin:4px 4px 0 0}#datepicker div#datepicker-form .form-date-group input[type='text']{width:35%}#datepicker div#datepicker-form .form-date-group button{margin:5px 0 0 0}#datepicker .daterangepicker{position:relative;margin:0 0 8px 0;width:100%;font-size:13px;border:solid 1px #ccc}#datepicker .daterangepicker table{width:100%;margin:0;border-spacing:1px}#datepicker .daterangepicker thead tr th{background-color:#0092ce;color:#fff;font-size:0.7em;height:1.5em;text-transform:uppercase}#datepicker .daterangepicker thead tr:first-child th{background-color:#fff;border-bottom:1px solid #0092ce;font-weight:200;font-size:1.4em;color:#00a4e7}#datepicker .daterangepicker td,#datepicker .daterangepicker th{text-align:center;padding:0;position:relative}#datepicker .daterangepicker tr{border-bottom:solid 1px #fff}#datepicker .daterangepicker td{color:#00a4e7;height:2.4em;padding:0 8px;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:0.2s;transition-duration:0.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#datepicker .daterangepicker td.day:after{content:"";position:absolute;display:block;top:0;left:0;width:100%;z-index:0;background-color:transparent}#datepicker .daterangepicker td.day:hover{cursor:pointer}#datepicker .daterangepicker td.day.disabled{color:#ccc}#datepicker .daterangepicker td.old,#datepicker .daterangepicker td.new{color:#ccc}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).range-compare{background-color:#4ca0b1;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare,#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).range-compare{background-color:#4ca0b1;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).end-selected-compare,#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare).range{background-color:#ba924c;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare).range{background-color:#ba924c;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected.start-selected{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#00a4e7}#datepicker .daterangepicker td.end-selected.start-selected.range-compare{background-color:#4ca0b1;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#ff8000}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare.range{background-color:#ba924c;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.range{color:#cef1ff;background-color:#1bbdff}#datepicker .daterangepicker td.range.range-compare{background-color:#8dab99}#datepicker .daterangepicker td.range-compare{color:#fff2e5;background-color:#f93}#datepicker .daterangepicker td.range-compare.range{background-color:#8dab99}#datepicker .daterangepicker td.today{background-color:#fff}#datepicker .daterangepicker td span{padding:0;display:block;width:33.333%;height:3em;line-height:3em;font-weight:400;float:left;text-transform:uppercase;cursor:pointer}#datepicker .daterangepicker td span:hover{color:#fff;background-color:#00a4e7}#datepicker .daterangepicker td span.active{background-color:#00a4e7;color:#fff}#datepicker .daterangepicker td span.old{color:#ccc}#datepicker .daterangepicker th.next{text-align:right;padding:0 10px 0 0}#datepicker .daterangepicker th.prev{text-align:left;padding:0 0 0 10px}#datepicker .daterangepicker th.next,#datepicker .daterangepicker th.prev,#datepicker .daterangepicker th.month-switch{font-size:1.3em;line-height:2em;height:2em}#datepicker .daterangepicker th.next:hover,#datepicker .daterangepicker th.prev:hover,#datepicker .daterangepicker th.month-switch:hover{background-color:#0092ce;color:#fff}#datepicker .daterangepicker thead tr:first-child th{cursor:pointer}.chevron-left,.chevron-right{position:relative}.chevron-left:before,.chevron-right:before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.chevron-left:before{right:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #00a4e7;background-color:#1bbdff}.chevron-right:before{left:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #1bbdff;background-color:#00a4e7}.input-complete{-webkit-animation:one 0.2s ease-in-out;-moz-animation:one 0.2s ease-in-out;-ms-animation:one 0.2s ease-in-out;-o-animation:one 0.2s ease-in-out;animation:one 0.2s ease-in-out}@-webkit-keyframes one{0%{background-color:#00a4e7}100%{background-color:#fff}}@-webkit-keyframes two{0%{-webkit-box-shadow:#00a4e7 0 0 0 20px inset;box-shadow:#00a4e7 0 0 0 20px inset}100%{-webkit-box-shadow:#00a4e7 0 0 0 inset;box-shadow:#00a4e7 0 0 0 inset}}/*! + */@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,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right}.pull-left,.page-head h2.page-title{float:left}[class^="icon-"].pull-left,.page-head h2[class^="icon-"].page-title,[class*=" icon-"].pull-left,.page-head h2[class*=" icon-"].page-title{margin-right:.3em}[class^="icon-"].pull-right,#content h3:not(.modal-title) [class^="icon-"].panel-heading-action,#content .panel-heading [class^="icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].panel-heading-action,[class*=" icon-"].pull-right,#content h3:not(.modal-title) [class*=" icon-"].panel-heading-action,#content .panel-heading [class*=" icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].panel-heading-action{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-"],#header_infos .nav>.active>a>[class^="icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class^="icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class^="icon-"],.navbar-inverse #header_employee_box>.active>a>[class^="icon-"],#header_infos #header_employee_box>.active>a>[class^="icon-"],.navbar-inverse #header_quick>.active>a>[class^="icon-"],#header_infos #header_quick>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],#header_infos .nav>.active>a>[class*=" icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],.navbar-inverse #header_employee_box>.active>a>[class*=" icon-"],#header_infos #header_employee_box>.active>a>[class*=" icon-"],.navbar-inverse #header_quick>.active>a>[class*=" icon-"],#header_infos #header_quick>.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,#header_notifs_icon_wrapper [class^="icon-"].icon-large,#header_employee_box [class^="icon-"].icon-large,#header_quick [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large,#header_notifs_icon_wrapper [class*=" icon-"].icon-large,#header_employee_box [class*=" icon-"].icon-large,#header_quick [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .btn [class^="icon-"].data_value:before,.nav [class^="icon-"].icon-spin,#header_notifs_icon_wrapper [class^="icon-"].icon-spin,#header_employee_box [class^="icon-"].icon-spin,#header_quick [class^="icon-"].icon-spin,.nav #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .nav [class^="icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class^="icon-"].data_value:before,#header_employee_box #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_employee_box [class^="icon-"].data_value:before,#header_quick #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_quick [class^="icon-"].data_value:before,.btn [class*=" icon-"].icon-spin,.btn #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .btn [class*=" icon-"].data_value:before,.nav [class*=" icon-"].icon-spin,#header_notifs_icon_wrapper [class*=" icon-"].icon-spin,#header_employee_box [class*=" icon-"].icon-spin,#header_quick [class*=" icon-"].icon-spin,.nav #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .nav [class*=" icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class*=" icon-"].data_value:before,#header_employee_box #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_employee_box [class*=" icon-"].data_value:before,#header_quick #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_quick [class*=" icon-"].data_value:before{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn h2[class^="icon-"].icon-2x.page-title,.btn [class*=" icon-"].pull-left.icon-2x,.btn .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn h2[class*=" icon-"].icon-2x.page-title,.btn [class^="icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn [class*=" icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn #dashboard .loading [class^="icon-"].icon-large.data_value:before,#dashboard .loading .btn [class^="icon-"].icon-large.data_value:before,.btn [class*=" icon-"].icon-spin.icon-large,.btn #dashboard .loading [class*=" icon-"].icon-large.data_value:before,#dashboard .loading .btn [class*=" icon-"].icon-large.data_value:before{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class^="icon-"].icon-2x.page-title,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class*=" icon-"].icon-2x.page-title,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small [class*=" icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action{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 .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{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,#dashboard .loading .data_value:before{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,a #dashboard .loading .data_value:before,#dashboard .loading a .data_value:before{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,.process-icon-cancel: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,.icon-AdminAdmin:before,.process-icon-configure:before{content:"\f013"}.icon-trash:before,.process-icon-delete: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,.process-icon-save-date:before,.process-icon-save-status: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,.process-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,.icon-AdminPriceRule:before{content:"\f02c"}.icon-book:before,.icon-AdminCatalog: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,.process-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,.process-icon-newCombination.toolbar-new:before{content:"\f055"}.icon-minus-sign:before,.process-icon-newCombination.toolbar-cancel:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before,.process-icon-help:before,.process-icon-help-new: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,.process-icon-new-module: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,.process-icon-preview:before,.process-icon-previewURL: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,.icon-AdminParentStats:before,.process-icon-stats: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,.icon-AdminTools: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,.icon-AdminParentOrders: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,.process-icon-back: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,.icon-AdminParentLocalization:before{content:"\f0ac"}.icon-wrench:before,.icon-AdminParentPreferences: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,.icon-AdminParentCustomer: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,.process-icon-duplicate:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before,.process-icon-save:before,.process-icon-save-and-stay:before,.process-icon-save-and-preview: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,.icon-AdminParentShipping: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,.icon-AdminDashboard: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,.process-icon-partial_refund:before{content:"\f0ec"}.icon-cloud-download:before,.process-icon-export:before{content:"\f0ed"}.icon-cloud-upload:before,.process-icon-import: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,.process-icon-newAttributes:before,.process-icon-new:before,.process-icon-new-url: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,#nav-sidebar ul.menu li.maintab.expanded span.submenu_expand:before{content:"\f106"}.icon-angle-down:before,#nav-sidebar ul.menu li.maintab span.submenu_expand: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,.icon-AdminParentModules:before,.process-icon-modules-list: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,.process-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,.icon-AdminStock:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}html,body{min-height:100%;height:100%}#main{min-height:100%;padding:36px 0 60px;margin:0 0 -60px 0;background-color:#f8f8f8;background-image:url("../img/patterns/bedge_grunge.png")}#content{padding:80px 20px 0;margin-left:240px;-webkit-transition-property:margin;transition-property:margin;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#content fieldset,#content .panel,#content #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #content .notifs_panel,#content #dash_version{padding:20px;margin-bottom:20px;border:solid 1px #dfdfdf;background-color:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset;box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset}#content h3:not(.modal-title),#content .panel-heading:not(.modal-title),#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title),#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title),#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{border:none;padding:0 5px;margin:-16px -16px 15px -16px;color:contrasted(#e6e8e3);font-size:1.2em;line-height:30px;font-weight:300;text-transform:uppercase;background-color:#fff;border-bottom:solid 1px #ccc}#content h3:not(.modal-title) i,#content .panel-heading:not(.modal-title) i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) i,#content h3:not(.modal-title) a,#content .panel-heading:not(.modal-title) a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) a,#content .panel-heading i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header i,#content .panel-heading a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header a{color:contrasted(#e6e8e3)}#content h3:not(.modal-title) .badge,#content .panel-heading:not(.modal-title) .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .badge,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content h3:not(.modal-title) .notifs_badge,#content .panel-heading:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading:not(.modal-title) .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .notifs_badge,#content .panel-heading .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .badge,#content .panel-heading #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_badge{background-color:#1ba6e5;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;height:29px;line-height:25px;font-size:1.3em;margin-right:7px;font-weight:300;float:left;margin-left:-5px}#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{margin-right:-5px}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn{float:left;height:30px;width:30px;color:#1ba6e5;border-left:solid 1px #ccc}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover{text-decoration:none;color:#000}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn i{text-align:center;font-size:1.3em;line-height:30px}#content .panel-danger .panel-heading,#content .panel-danger #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .panel-danger .notifs_panel_header{background-color:#8bc954 !important}#content form .alert,#content form #carrier_wizard .wizard_error,#carrier_wizard #content form .wizard_error{clear:both}@media (max-width: 768px){#content{margin-left:0;width:100%}}#nobootstrap{float:left}.data-focus.data-focus-primary{background-color:#1ba6e5;color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}#customer_part .customerCard.selected-customer .panel,#customer_part .customerCard.selected-customer #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #customer_part .customerCard.selected-customer .notifs_panel,#customer_part .customerCard.selected-customer #dash_version{color:#5cb85c;border:solid 2px #5cb85c}body.display-modal #content,body.display-modal #main{margin:0;padding:0;background:#f8f8f8}#content .panel .panel-footer,#content #header_notifs_icon_wrapper .notifs_panel .panel-footer,#header_notifs_icon_wrapper #content .notifs_panel .panel-footer,#content #dash_version .panel-footer,#header_notifs_icon_wrapper .notifs_panel #content .panel .notifs_panel_footer,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper #content .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #content #dash_version .notifs_panel_footer{margin:15px -20px -20px;height:73px}.panel-footer .btn.pull-right,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.pull-right,.panel-footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-footer .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action,.panel-footer #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action{margin-left:3px}.attributes-color-container{width:40px;height:25px;display:block;border:solid 1px #000}#header_infos{background-color:#242424}#header_shopname{font:300 1.3em/100% "Ubuntu",sans-serif;position:relative;padding:0 0 0 45px;margin:0 20px 0 0;height:37px;line-height:37px}#header_shopname img{position:absolute;top:0;left:0;width:37px;height:37px}#header_notifs_icon_wrapper li a{padding:9px 5px}#header_notifs_icon_wrapper>li>a>i{font-size:1.4em;color:#fff;vertical-align:middle}#header_notifs_icon_wrapper .notifs_badge{background-color:#8bc954}#header_notifs_icon_wrapper .notifs_dropdown{background-color:transparent;border:none;box-shadow:none}#header_notifs_icon_wrapper .notifs_panel{width:300px;-webkit-box-shadow:rgba(0,0,0,0.5) 2px 2px 8px;box-shadow:rgba(0,0,0,0.5) 2px 2px 8px}#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header h3,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_header{padding:0;font-size:1.3em;margin:0}#header_nav_toggle{background-color:#000;border:none;color:#fff}#header_employee_box a img{margin-right:5px}#header_employee_box #header_foaccess i{font-size:1.2em}#header_search{width:160px;padding:0 0 0 10px;position:relative}@media (max-width: 768px){#header_search{width:100%}}#header_search input,#header_search .form-group{margin:0}#header_search .form-group.focus-search{position:absolute;z-index:900;top:0;left:10px;width:400px}.employee_name{position:relative;padding-left:34px !important}.employee_avatar_small{height:30px;width:30px;display:inline-block;position:absolute;top:4px;left:0}.employee_avatar_small img{width:100%;height:100%;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}.employee_avatar{height:100px;width:100px;display:block;margin:10px auto 10px auto;overflow:hidden;-webkit-border-radius:120px;-moz-border-radius:120px;-ms-border-radius:120px;-o-border-radius:120px;border-radius:120px;-webkit-box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px;box-shadow:#fff 0 0 0 2px,#ccc 0 0 10px 3px}.employee_avatar img{width:100%;height:100%}#footer{z-index:600;display:block;width:100%;background-color:rgba(36,36,36,0.85);color:#888;position:fixed;bottom:0;height:50px;line-height:50px}#footer a{color:#ccc}#footer #go-top{position:fixed;bottom:10px;height:30px;width:30px;text-align:center;line-height:30px;right:10px;z-index:9003;display:block;padding:0px 6px 0px 6px;margin:-2px 0px 0px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;background-color:rgba(0,0,0,0.5)}#footer #go-top:hover{background-color:#000}#footer .social-networks{margin:4px 0 0 0}a.link-social i{font-size:2em;width:30px;height:30px;display:inline-block;line-height:30px;text-align:center;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}a.link-social:hover{text-decoration:none}.link-twitter i{color:#fff;background-color:#7cceef}.link-twitter i:hover{color:#7cceef;background-color:#fff}.link-facebook i{color:#fff;background-color:#557dbb}.link-facebook i:hover{color:#557dbb;background-color:#fff}.link-github i{color:#000;background-color:#fff}.link-github i:hover{color:#fff;background-color:#000}.link-google i{color:#fff;background-color:#e6644e}.link-google i:hover{color:#e6644e;background-color:#fff}#nav-sidebar{position:fixed;width:240px;height:100% !important;overflow-y:auto;z-index:500;background-color:#515561;border-right:1px solid #000}#nav-sidebar li.maintab>a>i{display:inline-block;height:30px;width:30px;font-size:20px;line-height:30px;color:#fff;text-align:center;-webkit-border-radius:40px;-moz-border-radius:40px;-ms-border-radius:40px;-o-border-radius:40px;border-radius:40px}#nav-sidebar li:not(.active) ul{display:none}#nav-sidebar li.active span.submenu_expand{display:none}#nav-sidebar ul.menu{margin:0 0 100px 0;padding:0;border-top:1px #000 solid;list-style:none}#nav-sidebar ul.menu li.maintab{position:relative}#nav-sidebar ul.menu li.maintab.active a.title,#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff;background-color:#1ba6e5}#nav-sidebar ul.menu li.maintab.active a.title i,#nav-sidebar ul.menu li.maintab.active a.title:hover i{color:#000;background-color:#fff}#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff}#nav-sidebar ul.menu li.maintab.expanded a.title{color:#fff;background-color:#3a3d45;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded a.title:hover{background-color:#686d7d}#nav-sidebar ul.menu li.maintab.expanded a.title i{color:#fff}#nav-sidebar ul.menu li.maintab.expanded ul.submenu{display:block}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a{color:#9da1ae;background-color:#2e3037;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a:hover{color:#fff;background-color:#454953}#nav-sidebar ul.menu li.maintab a.title{display:block;position:relative;padding:2px 0 2px 8px;border-bottom:1px solid #3a3d45;font-size:12px;line-height:28px;color:#cacccf;background-color:#515561;text-transform:uppercase;text-decoration:none;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title i{color:#9094a2;background-color:#17181c;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title:hover{background-color:#686d7d;color:#fff}#nav-sidebar ul.menu li.maintab a.title:hover i{color:#fff}#nav-sidebar ul.menu li.maintab span.submenu_expand{position:absolute;right:10px;top:2px;cursor:pointer;font-family:FontAwesome;font-size:24px;font-weight:100;color:#000;background-color:transparent;text-shadow:#686d7d 1px 1px 0}#nav-sidebar ul.menu li.maintab span.submenu_expand:hover{color:#fff;text-shadow:#232429 -1px -1px 0}#nav-sidebar ul.submenu{list-style:none;padding:0}#nav-sidebar ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;border:none;border-bottom:solid 1px #eee;background-color:#fff}#nav-sidebar ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-sidebar ul.submenu li:last-child a{border-bottom:none}#nav-sidebar ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}@media (max-width: 768px){#nav-sidebar{display:none}}#nav-topbar{position:fixed;height:28px;top:38px;left:80;width:100%;padding:0 40px 0 0;z-index:600;background-color:#fff}#nav-topbar ul.menu{margin:0;padding:0;display:block;list-style:none}#nav-topbar ul.menu li.maintab,#nav-topbar ul.menu li.subtab{height:28px;padding:0;margin:0;list-style:none;position:relative;float:left}#nav-topbar ul.menu li.maintab>a,#nav-topbar ul.menu li.subtab>a{display:block;line-height:30px;color:#515561;padding:0 6px;margin:0;font-size:12px}#nav-topbar ul.menu li.maintab>a i,#nav-topbar ul.menu li.subtab>a i{margin:0;width:15px;background-color:transparent;font-size:14px}#nav-topbar ul.menu li.maintab.active,#nav-topbar ul.menu li.maintab:hover,#nav-topbar ul.menu li.subtab.active,#nav-topbar ul.menu li.subtab:hover{background-color:#1ba6e5}#nav-topbar ul.menu li.maintab.active>a,#nav-topbar ul.menu li.maintab:hover>a,#nav-topbar ul.menu li.subtab.active>a,#nav-topbar ul.menu li.subtab:hover>a{text-decoration:none;color:#fff}#nav-topbar ul.menu li.maintab.active>a i,#nav-topbar ul.menu li.maintab:hover>a i,#nav-topbar ul.menu li.subtab.active>a i,#nav-topbar ul.menu li.subtab:hover>a i{color:#fff}#nav-topbar ul.menu li.expanded>ul.submenu{display:block}#nav-topbar ul.menu ul.submenu{background-color:#fff;-webkit-box-shadow:rgba(0,0,0,0.3) 0 2px 4px;box-shadow:rgba(0,0,0,0.3) 0 2px 4px;display:none;position:absolute;margin:0;padding:0;left:0;top:28px;width:200px !important}#nav-topbar ul.menu ul.submenu>li{width:200px;padding:0;list-style:none}#nav-topbar ul.menu ul.submenu>li>a{display:block;padding:4px 5px 4px 10px;font-size:12px;border-bottom:solid 1px #eee}#nav-topbar ul.menu ul.submenu>li>a:hover{color:#fff;background-color:#1ba6e5;text-decoration:none}#nav-topbar ul.menu ul.submenu>li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}#nav-topbar #ellipsistab{display:block;width:40px;height:28px;padding:0;margin:0;position:absolute;right:0}#nav-topbar #ellipsistab>a{text-align:center;font-size:15px;line-height:30px;color:#515561;cursor:pointer}#nav-topbar #ellipsistab ul#ellipsis_submenu{right:0;left:inherit}#nav-topbar #ellipsistab ul#ellipsis_submenu a.title{padding:0 8px;text-align:left}#nav-topbar #ellipsistab ul#ellipsis_submenu li.subtab.expanded>ul{left:-200px;top:0}#nav-topbar .menu-collapse{display:none}.menu-collapse{height:54px;width:100%;font-size:2em;text-align:center;line-height:55px;display:block;background-color:#515561;border-bottom:3px solid #3a3d45;color:#0b0c0e}.page-topbar #main{padding-top:64px}.page-topbar #nav-sidebar{display:none}.page-topbar .page-head{top:66px}.page-topbar #content{margin-left:0;width:100%}.page-topbar #content .page-head h2.page-title{padding:0 0 0 20px}.page-sidebar-closed #nav-sidebar{overflow:visible;width:50px;-webkit-transition-property:width;transition-property:width;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-sidebar-closed #nav-sidebar span.title{display:none}.page-sidebar-closed #nav-sidebar ul.submenu{display:none !important;padding-top:37px;position:relative;top:0;-webkit-box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px;box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px}.page-sidebar-closed #nav-sidebar>ul>li:hover{width:250px !important;position:relative}.page-sidebar-closed #nav-sidebar>ul>li:hover span.title{display:inline-block}.page-sidebar-closed #nav-sidebar>ul>li:hover ul.submenu{display:block !important;position:absolute;left:50px;width:200px !important}.page-sidebar-closed #content{margin-left:50px}.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 70px}@media (max-width: 768px){.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 20px}}@media (max-width: 768px){.page-sidebar-closed #content{margin-left:0;width:100%}}.page-sidebar-closed .submenu_expand{display:none}[class^="icon-Admin"]{margin-right:6px}.fixed-width-xs{width:40px !important}.fixed-width-sm{width:80px !important}.fixed-width-md{width:120px !important}.fixed-width-lg{width:160px !important}.fixed-width-xl{width:200px !important}.fixed-width-xxl{width:250px !important}.row-margin-bottom{margin-bottom:15px}.row-padding-top{padding-top:15px}.thumbnail,.img-thumbnail,.thumbnail{background-color:#fff;border-color:#ccc !important}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{background-color:#8fc04d}#header_notifs_icon_wrapper .badge-success.notifs_badge,.badge-success.badge{background-color:#5cb85c}#header_notifs_icon_wrapper .badge-error.notifs_badge,.badge-error.badge{background-color:#d9534f}.nav-tabs{border-bottom:none}.nav-tabs li a{font-size:1.1em;font-family:"Ubuntu",sans-serif;text-transform:uppercase;font-weight:300}.nav-tabs li.active a,.nav-tabs li.active a:hover,.nav-tabs li.active a:focus{background-color:#fff}.alert.alert-danger,#carrier_wizard .wizard_error{padding-left:60px;position:relative}.alert.alert-danger:before,#carrier_wizard .wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00d"}.alert.alert-success,#carrier_wizard .alert-success.wizard_error{padding-left:60px;position:relative}.alert.alert-success:before,#carrier_wizard .alert-success.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00c"}.alert.alert-info,#carrier_wizard .alert-info.wizard_error{padding-left:60px;position:relative}.alert.alert-info:before,#carrier_wizard .alert-info.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\F05A"}.overflow-y{height:200px;overflow-y:auto}.table{border-collapse:separate;border-spacing:0 2px 0 0;margin-bottom:5px}.table thead>tr>th{border:none;font-weight:normal;vertical-align:top;border-bottom:solid 1px #8bc6e7}.table thead>tr>th span.title_box{color:#000;font-size:1.1em;font-weight:bold;display:block;word-wrap:nowrap;white-space:nowrap}.table thead>tr>th span.title_box.active{font-weight:bold}.table thead>tr>th span.title_box a{text-decoration:none}.table thead>tr>th span.title_box a.active{color:#000}.table input,.table select{margin:0}.table tbody>tr>td{border-top:none;background-color:#fff}.table tbody>tr>td{padding:3px 7px;vertical-align:middle;word-wrap:nowrap;font-size:12px;border-bottom:solid 1px #eee}.table td.center,.table th.center{text-align:center}.table td.pointer{cursor:pointer}tr.filter{background-color:#dfeff8}tr.filter input[type="text"].filter,tr.filter input[type="password"].filter,tr.filter select.filter{font-size:12px;border-color:#a0d0eb}tr.highlighted td{background-color:#1ba6e5 !important;color:#fff}td.actions{min-width:200px}.bulk-actions{margin:17px 0 0 0}.tree{padding:0 0 0 20px;list-style:none}.tree input{margin-right:4px}.tree i{font-size:1.3em}.tree .tree-item-name,.tree .tree-folder-name{padding:0 5px;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;font-weight:normal}.tree .tree-item-name:hover,.tree .tree-folder-name:hover{background-color:#eee;cursor:pointer}.tree .tree-selected{background-color:#a4dcf5}.tree .tree-selected i.tree-dot{background-color:#1ba6e5}.tree i.tree-dot{display:inline-block;position:relative;width:6px;height:6px;margin:0 4px 0 6px;background-color:#ccc;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.tree .tree-item-disable,.tree .tree-folder-name-disable{color:#ccc}.tree .tree-item-disable:hover,.tree .tree-folder-name-disable:hover{color:#ccc;background-color:none}.tree-actions{padding-bottom:4px;display:inline-block}.tree-panel-heading-controls{margin:-20px -20px 20px;padding:5px;border-bottom:solid 1px #dfdfdf}label.control-label{font-size:13px;font-weight:normal;color:#666}label.control-label span.label-tooltip{text-decoration:none;font-size:13px;background-color:#ebebeb;border:none;border-bottom:solid 1px #dfdfdf;padding:0 5px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}label.required:before{content:"*";color:red;font-size:14px;position:relative;line-height:12px}.tooltip{font-size:12px}select.input-tiny,input[type="text"].input-tiny,input[type="password"].input-tiny{width:80px;float:left}textarea{resize:none}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{background-color:#fefbe2;-webkit-box-shadow:none;box-shadow:none}.btn{text-transform:uppercase}.btn .caret{border-top-color:#333 !important}.btn:hover .caret,.btn:focus .caret{border-top-color:#fff !important}.btn.btn-default{-webkit-box-shadow:#e6e6e6 0 -2px 0 inset;box-shadow:#e6e6e6 0 -2px 0 inset}.btn.btn-default:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default:hover i{color:#fff}.btn.btn-primary{background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default[disabled]{border-color:#999;color:#999;background-color:#f2f2f2;-webkit-box-shadow:#ccc 0 -2px 0 inset;box-shadow:#ccc 0 -2px 0 inset}.dropdown-menu{text-align:left}.btn-group-action{width:160px;float:right}.btn-group-action .btn-group{float:right}.btn-group-action a{text-decoration:none}.tt-query{border-bottom-right-radius:3px !important;border-top-right-radius:3px !important}.tt-dropdown-menu{background-color:#fff;border:solid 1px #ccc;font-size:0.9em;text-transform:none}.tt-suggestions{padding:0 6px;-webkit-box-shadow:rgba(0,0,0,0.25) 0 1px 4px;box-shadow:rgba(0,0,0,0.25) 0 1px 4px}.tt-suggestion p{border-bottom:solid 1px #ccc;margin:0 !important;padding:0 !important}.tt-suggestion:last-child p{border-bottom:none}.tagify-container{background-color:#fff;padding:2px 6px;min-height:30px;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;border:solid 1px #ccc;-webkit-box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset;box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset}.tagify-container span{float:left}.tagify-container>span{display:inline-block;padding:3px 5px;margin:3px;border-radius:2px;border:1px solid #1ba6e5;background-color:#60c1ed;color:#fff}.tagify-container>span>a{padding-left:5px;color:#1ba6e5;text-decoration:none;font-weight:bold}.tagify-container>input{margin-top:2px;border:0 none;width:100px;-webkit-box-shadow:none;box-shadow:none}.tagify-container>input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.box-stats{background-color:#fff}.box-stats .boxchart-overlay{padding:10px 10px 5px 10px;margin-right:10px;float:left;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats i{float:left;height:64px;width:64px;margin-right:10px;color:#fff;font-size:35px;text-align:center;line-height:64px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats .title{color:#666;display:block}.box-stats .value{font-size:22px}.box-stats small{line-height:0.3em;color:#aaa;text-transform:uppercase}.box-stats:hover{text-decoration:none}.color1 i,.color1 .boxchart-overlay{background-color:#2ba8e3;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color1 .value{color:#2ba8e3}.color2 i,.color2 .boxchart-overlay{background-color:#ff5450;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color2 .value{color:#ff5450}.color3 i,.color3 .boxchart-overlay{background-color:#9e5ba1;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color3 .value{color:#9e5ba1}.color4 i,.color4 .boxchart-overlay{background-color:#95cc6b;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color4 .value{color:#95cc6b}.data_chart rect{fill:#fff}.data_chart path{stroke:#fff;stroke-width:2;fill:none}.data_chart line{stroke:#000}.data_chart .area{fill:rgba(255,255,255,0.3);stroke-width:0}.icon-big{font-size:4em;color:#c5c5c5}.switch .slide-button,.toggle p span{display:none}.switch{background-color:#d2d2d2;border-radius:3px}.switch label{padding:0;cursor:pointer}@media only screen{.toggle{position:relative;padding:0;margin-left:100px}.toggle label{position:relative;z-index:3;display:block;width:100%}.toggle input{position:absolute;opacity:0;z-index:5}.toggle p{position:absolute;left:-100px;width:100%;margin:0;padding-right:100px;text-align:left}.toggle p span{position:absolute;top:0;left:0;z-index:5;display:block;width:50%;margin-left:100px;text-align:center}.toggle:last-child{left:50%}.toggle .slide-button{position:absolute;right:0;top:0;z-index:4;display:block;width:50%;height:100%;padding:0}.switch{position:relative;padding:0}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center}.switch .slide-button{position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch.switch-three label,.switch.switch-three .slide-button{width:33.3%}.switch.switch-three input:checked:nth-of-type(2) ~ .slide-button{left:33.3%}.switch.switch-three input:checked:last-of-type ~ .slide-button{left:66.6%}.switch.switch-four label,.switch.switch-four .slide-button{width:25%}.switch.switch-four input:checked:nth-of-type(2) ~ .slide-button{left:25%}.switch.switch-four input:checked:nth-of-type(3) ~ .slide-button{left:50%}.switch.switch-four input:checked:last-of-type ~ .slide-button{left:75%}.switch.switch-five label,.switch.switch-five .slide-button{width:20%}.switch.switch-five input:checked:nth-of-type(2) ~ .slide-button{left:20%}.switch.switch-five input:checked:nth-of-type(3) ~ .slide-button{left:40%}.switch.switch-five input:checked:nth-of-type(4) ~ .slide-button{left:60%}.switch.switch-five input:checked:last-of-type ~ .slide-button{left:80%}.toggle,.switch{display:block;height:27px}.switch *,.toggle *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.switch .slide-button,.toggle .slide-button{display:block;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-ms-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.toggle label,.toggle p,.switch label{line-height:27px;vertical-align:middle}.toggle input:checked ~ .slide-button{right:50%}.toggle input:focus ~ .slide-button,.switch input:focus+label{outline:1px dotted #888}.switch,.toggle{-webkit-animation:bugfix infinite 1s}.prestashop-switch{min-width:150px;color:#666;text-align:center;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset;box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset}.prestashop-switch label{padding-top:0 !important;font-weight:500}.prestashop-switch input:checked+label{color:#333 !important;text-shadow:rgba(255,255,255,0.7) 1px 1px 0}.prestashop-switch input:not(:checked)+label i{color:#666 !important}.prestashop-switch .slide-button{position:relative;margin-right:3px;color:#fff}.prestashop-switch p{color:#333}.prestashop-switch span{color:#fff}}.page-head{width:100%;height:55px;padding:0 10px 0 0;margin:0;border-bottom:4px solid #75a139;position:fixed;top:36px;left:0px;z-index:499;background-color:#8fc04d;-webkit-box-shadow:rgba(0,0,0,0.15) 0 7px 0;box-shadow:rgba(0,0,0,0.15) 0 7px 0}.page-head h2.page-title{padding:0 0 0 260px;font-size:18px;color:#fff;text-transform:uppercase}@media (max-width: 768px){.page-head h2.page-title{padding:0 0 0 20px}}.page-head h2.page-title a{border-bottom:dotted 1px #fff}.page-head h2.page-title a:hover{color:#000;border-color:#000}.page-head a{color:#fff;text-decoration:none}.page-head .btn-toolbar{margin:0;padding:3px 0 0 0}.page-head .btn-toolbar .nav-tabs{margin:0}.page-head .btn-toolbar .nav-tabs>li>a{color:#333}.toolbar_btn{position:relative;padding:2px 5px !important;margin-right:3px;font-size:12px;font-weight:600;color:#fff;text-align:center;text-shadow:none}.toolbar_btn:hover{color:#8fc04d;border-color:#fff;background-color:#fff !important}[class^="process-icon-"],[class*=" process-icon-"]{height:25px;min-width:32px;background-position:center;background-repeat:no-repeat;display:block;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:25px;line-height:25px;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:0.3em}.page-header-toolbar-back{border:none !important;display:inline-block}#datepicker .input-selected{margin:0}#datepicker #date-start.input-selected,#datepicker #date-end.input-selected{border:solid 3px #00a4e7}#datepicker #date-start-compare.input-selected,#datepicker #date-end-compare.input-selected{border:solid 3px #ff8000}#datepicker div#datepicker-form #date-range{border:solid 1px #0092ce}#datepicker div#datepicker-form #date-range .form-date-heading{background-color:#0092ce}#datepicker div#datepicker-form #date-compare{border:solid 1px #e67300}#datepicker div#datepicker-form #date-compare .form-date-heading{background-color:#e67300}#datepicker div#datepicker-form .form-date-heading{height:30px;line-height:30px;padding:0 0 0 8px}#datepicker div#datepicker-form .form-date-heading .title,#datepicker div#datepicker-form .form-date-heading .checkbox-title label{font-size:1.15em;color:#fff;font-weight:200;text-transform:uppercase;line-height:2em}#datepicker div#datepicker-form .form-date-heading .btn-default{background-color:rgba(255,255,255,0.3);font-weight:700;color:#fff;border:none}#datepicker div#datepicker-form .form-date-heading select{margin:2px 2px 0 0}#datepicker div#datepicker-form .form-date-body,#datepicker div#datepicker-form .form-date-actions{width:100%;padding:10px;background-color:#fff;display:inline-block}#datepicker div#datepicker-form .form-date-actions{border:solid 1px #ccc}#datepicker div#datepicker-form .form-date-group{clear:both;width:100%;margin:0 auto 6px auto}#datepicker div#datepicker-form .form-date-group label{font-size:0.8em;font-weight:700;text-transform:uppercase;color:#666}#datepicker div#datepicker-form .form-date-group input{margin:4px 4px 0 0}#datepicker div#datepicker-form .form-date-group input[type='text']{width:35%}#datepicker div#datepicker-form .form-date-group button{margin:5px 0 0 0}#datepicker .daterangepicker{position:relative;margin:0 0 8px 0;width:100%;font-size:13px;border:solid 1px #ccc}#datepicker .daterangepicker table{width:100%;margin:0;border-spacing:1px}#datepicker .daterangepicker thead tr th{background-color:#0092ce;color:#fff;font-size:0.7em;height:1.5em;text-transform:uppercase}#datepicker .daterangepicker thead tr:first-child th{background-color:#fff;border-bottom:1px solid #0092ce;font-weight:200;font-size:1.4em;color:#00a4e7}#datepicker .daterangepicker td,#datepicker .daterangepicker th{text-align:center;padding:0;position:relative}#datepicker .daterangepicker tr{border-bottom:solid 1px #fff}#datepicker .daterangepicker td{color:#00a4e7;height:2.4em;padding:0 8px;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:0.2s;transition-duration:0.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#datepicker .daterangepicker td.day:after{content:"";position:absolute;display:block;top:0;left:0;width:100%;z-index:0;background-color:transparent}#datepicker .daterangepicker td.day:hover{cursor:pointer}#datepicker .daterangepicker td.day.disabled{color:#ccc}#datepicker .daterangepicker td.old,#datepicker .daterangepicker td.new{color:#ccc}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).range-compare{background-color:#4ca0b1;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare,#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).range-compare{background-color:#4ca0b1;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).end-selected-compare,#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare).range{background-color:#ba924c;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare).range{background-color:#ba924c;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected.start-selected{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#00a4e7}#datepicker .daterangepicker td.end-selected.start-selected.range-compare{background-color:#4ca0b1;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#ff8000}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare.range{background-color:#ba924c;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.range{color:#cef1ff;background-color:#1bbdff}#datepicker .daterangepicker td.range.range-compare{background-color:#8dab99}#datepicker .daterangepicker td.range-compare{color:#fff2e5;background-color:#f93}#datepicker .daterangepicker td.range-compare.range{background-color:#8dab99}#datepicker .daterangepicker td.today{background-color:#fff}#datepicker .daterangepicker td span{padding:0;display:block;width:33.333%;height:3em;line-height:3em;font-weight:400;float:left;text-transform:uppercase;cursor:pointer}#datepicker .daterangepicker td span:hover{color:#fff;background-color:#00a4e7}#datepicker .daterangepicker td span.active{background-color:#00a4e7;color:#fff}#datepicker .daterangepicker td span.old{color:#ccc}#datepicker .daterangepicker th.next{text-align:right;padding:0 10px 0 0}#datepicker .daterangepicker th.prev{text-align:left;padding:0 0 0 10px}#datepicker .daterangepicker th.next,#datepicker .daterangepicker th.prev,#datepicker .daterangepicker th.month-switch{font-size:1.3em;line-height:2em;height:2em}#datepicker .daterangepicker th.next:hover,#datepicker .daterangepicker th.prev:hover,#datepicker .daterangepicker th.month-switch:hover{background-color:#0092ce;color:#fff}#datepicker .daterangepicker thead tr:first-child th{cursor:pointer}.chevron-left,.chevron-right{position:relative}.chevron-left:before,.chevron-right:before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.chevron-left:before{right:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #00a4e7;background-color:#1bbdff}.chevron-right:before{left:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #1bbdff;background-color:#00a4e7}.input-complete{-webkit-animation:one 0.2s ease-in-out;-moz-animation:one 0.2s ease-in-out;-ms-animation:one 0.2s ease-in-out;-o-animation:one 0.2s ease-in-out;animation:one 0.2s ease-in-out}@-webkit-keyframes one{0%{background-color:#00a4e7}100%{background-color:#fff}}@-webkit-keyframes two{0%{-webkit-box-shadow:#00a4e7 0 0 0 20px inset;box-shadow:#00a4e7 0 0 0 20px inset}100%{-webkit-box-shadow:#00a4e7 0 0 0 inset;box-shadow:#00a4e7 0 0 0 inset}}/*! * Ladda * http://lab.hakim.se/ladda * MIT licensed * * Copyright (C) 2013 Hakim El Hattab, http://hakim.se - */.ladda-button{position:relative}.ladda-button .ladda-spinner{position:absolute;z-index:2;display:inline-block;width:32px;height:32px;top:50%;margin-top:-16px;opacity:0;pointer-events:none}.ladda-button .ladda-label{position:relative;z-index:3}.ladda-button .ladda-progress{position:absolute;width:0;height:100%;left:0;top:0;background:rgba(0,0,0,0.2);visibility:hidden;opacity:0;-webkit-transition:0.1s linear all !important;-moz-transition:0.1s linear all !important;-ms-transition:0.1s linear all !important;-o-transition:0.1s linear all !important;transition:0.1s linear all !important}.ladda-button .ladda-progress[data-loading] .ladda-progress{opacity:1;visibility:visible}.ladda-button,.ladda-button .ladda-spinner,.ladda-button .ladda-label{-webkit-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-moz-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-ms-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-o-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important}.ladda-button[data-style=zoom-in],.ladda-button[data-style=zoom-in] .ladda-spinner,.ladda-button[data-style=zoom-in] .ladda-label,.ladda-button[data-style=zoom-out],.ladda-button[data-style=zoom-out] .ladda-spinner,.ladda-button[data-style=zoom-out] .ladda-label{-webkit-transition:0.3s ease all !important;-moz-transition:0.3s ease all !important;-ms-transition:0.3s ease all !important;-o-transition:0.3s ease all !important;transition:0.3s ease all !important}.ladda-button[data-style=expand-right] .ladda-spinner{right:14px}.ladda-button[data-style=expand-right][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-right][data-size="xs"] .ladda-spinner{right:4px}.ladda-button[data-style=expand-right][data-loading]{padding-right:56px}.ladda-button[data-style=expand-right][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-right][data-loading][data-size="s"],.ladda-button[data-style=expand-right][data-loading][data-size="xs"]{padding-right:40px}.ladda-button[data-style=expand-left] .ladda-spinner{left:14px}.ladda-button[data-style=expand-left][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-left][data-size="xs"] .ladda-spinner{left:4px}.ladda-button[data-style=expand-left][data-loading]{padding-left:56px}.ladda-button[data-style=expand-left][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-left][data-loading][data-size="s"],.ladda-button[data-style=expand-left][data-loading][data-size="xs"]{padding-left:40px}.ladda-button[data-style=expand-up]{overflow:hidden}.ladda-button[data-style=expand-up] .ladda-spinner{top:-32px;left:50%;margin-left:-16px}.ladda-button[data-style=expand-up][data-loading]{padding-top:54px}.ladda-button[data-style=expand-up][data-loading] .ladda-spinner{opacity:1;top:14px;margin-top:0}.ladda-button[data-style=expand-up][data-loading][data-size="s"],.ladda-button[data-style=expand-up][data-loading][data-size="xs"]{padding-top:32px}.ladda-button[data-style=expand-up][data-loading][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-up][data-loading][data-size="xs"] .ladda-spinner{top:4px}.ladda-button[data-style=slide-left]{overflow:hidden}.ladda-button[data-style=slide-left] .ladda-label{position:relative}.ladda-button[data-style=slide-left] .ladda-spinner{left:100%;margin-left:-16px}.ladda-button[data-style=slide-left][data-loading] .ladda-label{opacity:0;left:-100%}.ladda-button[data-style=slide-left][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-right]{overflow:hidden}.ladda-button[data-style=slide-right] .ladda-label{position:relative}.ladda-button[data-style=slide-right] .ladda-spinner{right:100%;margin-left:-16px}.ladda-button[data-style=slide-right][data-loading] .ladda-label{opacity:0;left:100%}.ladda-button[data-style=slide-right][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-up]{overflow:hidden}.ladda-button[data-style=slide-up] .ladda-label{position:relative}.ladda-button[data-style=slide-up] .ladda-spinner{left:50%;margin-left:-16px;margin-top:1em}.ladda-button[data-style=slide-up][data-loading] .ladda-label{opacity:0;top:-1em}.ladda-button[data-style=slide-up][data-loading] .ladda-spinner{opacity:1;margin-top:-16px}.ladda-button[data-style=slide-down]{overflow:hidden}.ladda-button[data-style=slide-down] .ladda-label{position:relative}.ladda-button[data-style=slide-down] .ladda-spinner{left:50%;margin-left:-16px;margin-top:-2em}.ladda-button[data-style=slide-down][data-loading] .ladda-label{opacity:0;top:1em}.ladda-button[data-style=slide-down][data-loading] .ladda-spinner{opacity:1;margin-top:-16px}.ladda-button[data-style=zoom-out]{overflow:hidden}.ladda-button[data-style=zoom-out] .ladda-spinner{left:50%;margin-left:-16px;-webkit-transform:scale(2.5);-moz-transform:scale(2.5);-ms-transform:scale(2.5);-o-transform:scale(2.5);transform:scale(2.5)}.ladda-button[data-style=zoom-out] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-out][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-ms-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-spinner{opacity:1;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=zoom-in]{overflow:hidden}.ladda-button[data-style=zoom-in] .ladda-spinner{left:50%;margin-left:-16px;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.ladda-button[data-style=zoom-in] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-in][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(2.2);-moz-transform:scale(2.2);-ms-transform:scale(2.2);-o-transform:scale(2.2);transform:scale(2.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-spinner{opacity:1;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=contract]{overflow:hidden;width:100px}.ladda-button[data-style=contract] .ladda-spinner{left:50%;margin-left:-16px}.ladda-button[data-style=contract][data-loading]{border-radius:50%;width:52px}.ladda-button[data-style=contract][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=contract-overlay]{overflow:hidden;width:100px;box-shadow:0px 0px 0px 3000px rgba(0,0,0,0)}.ladda-button[data-style=contract-overlay] .ladda-spinner{left:50%;margin-left:-16px}.ladda-button[data-style=contract-overlay][data-loading]{border-radius:50%;width:52px;box-shadow:0px 0px 0px 3000px rgba(0,0,0,0.8)}.ladda-button[data-style=contract-overlay][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner{opacity:1}.ladda-button[disabled],.ladda-button[data-loading]{border-color:rgba(0,0,0,0.07);cursor:default;background-color:#999}.ladda-button[disabled]:hover,.ladda-button[data-loading]:hover{cursor:default;background-color:#999}.ladda-button[data-size=xs]{padding:4px 8px}.ladda-button[data-size=xs] .ladda-label{font-size:0.7em}.ladda-button[data-size=s]{padding:6px 10px}.ladda-button[data-size=s] .ladda-label{font-size:0.9em}.ladda-button[data-size=l] .ladda-label{font-size:1.2em}.ladda-button[data-size=xl] .ladda-label{font-size:1.5em}#login{height:100%;background:-webkit-gradient(radial, 50% 50%, 0, 50% 50%, 40, color-stop(10%, rgba(104,128,138,0.4)), color-stop(40%, rgba(138,114,76,0))),-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(57,173,219,0.25)), color-stop(100%, rgba(42,60,87,0.4))),-webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #670d10), color-stop(100%, #092756));background:-webkit-radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),-webkit-linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),-webkit-linear-gradient(left top, #670d10,#092756);background:-moz-radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),-moz-linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),-moz-linear-gradient(left top, #670d10,#092756);background:-o-radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),-o-linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),-o-linear-gradient(left top, #670d10,#092756);background:radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),linear-gradient(left top, #670d10,#092756)}#login-header{margin:0 0 60px 0;color:#fff}#login-panel{margin:0 auto;width:420px}#login-panel .panel,#login-panel #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #login-panel .notifs_panel,#login-panel #dash_version{-webkit-box-shadow:rgba(255,255,255,0.45) 0 0 0 6px;box-shadow:rgba(255,255,255,0.45) 0 0 0 6px}#login-panel .panel-footer,#login-panel #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #login-panel .notifs_panel_footer{margin:0 -20px -20px}#login-panel .flip-container{-webkit-perspective:1000px;-moz-perspective:1000px;-ms-perspective:1000px;-o-perspective:1000px;perspective:1000px;height:370px}#login-panel .flip-container.flip .flipper{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}#login-panel .flipper{-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;position:relative}#login-panel .front,#login-panel .back{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;width:420px;position:absolute;top:0;left:0}#login-panel .front{z-index:2}#login-panel .back{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}#login-footer a{color:#a0aab5}.animated{-webkit-animation-duration:1s;-moz-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInDown{0%{opacity:0;-moz-transform:translateY(-20px)}100%{opacity:1;-moz-transform:translateY(0)}}@-o-keyframes fadeInDown{0%{opacity:0;-o-transform:translateY(-20px)}100%{opacity:1;-o-transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}.animated.fadeInDown{-webkit-animation-name:fadeInDown;-moz-animation-name:fadeInDown;-o-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.animated.fadeIn{-webkit-animation-name:fadeIn;-moz-animation-name:fadeIn;-o-animation-name:fadeIn;animation-name:fadeIn}#carrier_wizard{position:relative;display:block}#carrier_wizard .stepContainer{position:relative;display:block;overflow:hidden;clear:both}#carrier_wizard .stepContainer div.content{position:absolute;display:block;width:100%;clear:both}#carrier_wizard .stepContainer .StepTitle{display:block;position:relative;clear:both}#carrier_wizard ul.anchor{position:relative;display:block;float:left;list-style:none;padding:0;margin:0 0 10px 0;clear:both;width:100%}#carrier_wizard ul.anchor.nbr_steps_4 li{width:25%;float:left}#carrier_wizard ul.anchor.nbr_steps_5 li{width:25%;float:left}#carrier_wizard li{position:relative;display:block;overflow:hidden}#carrier_wizard li a{color:#ccc;height:32px;display:block;position:relative;margin:0 16px 0 0;text-decoration:none;outline-style:none}#carrier_wizard li a .stepNumber{position:relative;float:left;width:24px;height:32px;margin-right:3px;text-align:center;padding:0 5px;font-size:30px;line-height:32px;color:#fff}#carrier_wizard li a .stepDesc{position:relative;text-align:left;font-size:13px;height:32px;display:table-cell;vertical-align:middle;line-height:13px}#carrier_wizard li a .chevron{border:16px solid transparent;border-left:14px solid #fff;border-right:0;position:absolute;right:-16px;top:0}#carrier_wizard li a .chevron:after{border:16px solid transparent;border-left:14px solid #ccc;border-right:0;position:absolute;content:"";right:2px;top:-16px}#carrier_wizard li a.disabled{color:#777;background-color:#ccc}#carrier_wizard li a.disabled .chevron:after{border-left:14px solid #ccc}#carrier_wizard li a.selected{color:#f8f8f8;cursor:text;background-color:#515561}#carrier_wizard li a.selected .chevron:after{border-left:14px solid #515561}#carrier_wizard li a.done{color:#fff;background-color:#5cb85c}#carrier_wizard li a.done .chevron:after{border-left:14px solid #5cb85c}#carrier_wizard .loader{display:none}#carrier_wizard .msgBox{position:relative;display:none;float:left;margin:4px 0 0 5px;padding:5px;border:1px solid gold;background-color:#ffd;color:#5a5655;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}#carrier_wizard .msgBox .content{padding:0px;float:left}#carrier_wizard #carrier_logo_block{right:10px}#carrier_wizard .range_inf td,#carrier_wizard .range_sup td{background-color:#ccc}#carrier_wizard .range_type{width:220px;text-align:right;font-weight:bold}#carrier_wizard .range_data{width:110px}#carrier_wizard .range_sign{width:18px;font-size:20px;text-align:center}#carrier_wizard .range_data_new{width:110px}#carrier_wizard table#zones_table{width:auto}#carrier_wizard .field_error{border-color:#d9534f}#carrier_wizard .actionBar{height:30px}#carrier_wizard .actionBar a{float:right;margin-right:10px}#module-list h3,#module-list #content .panel-heading,#content #module-list .panel-heading,#module-list #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#content #header_notifs_icon_wrapper .notifs_panel #module-list .notifs_panel_header,#module-list #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content #module-list .notifs_panel_header{position:relative;top:0;left:0;margin:0;padding:0;background-color:transparent;color:#515561;font-weight:500}.hook_panel{-webkit-box-shadow:rgba(255,255,255,0.9) 0 0 0 1px inset;box-shadow:rgba(255,255,255,0.9) 0 0 0 1px inset;padding:10px 10px 5px 10px;margin-bottom:3px !important}.module_name{font-size:1.2em}.hook_panel_header{margin:0 -10px 0 -10px;padding:0 10px 10px 10px}.hook_panel_header .hook_name{font-weight:400;font-size:1.2em;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;color:#1ba6e5;border:solid 1px #ccc;background-color:#fff;padding:0 4px}.hook_panel_header .hook_title{text-transform:uppercase;font-size:1em}.hook_panel_header .hook_description{padding:3px 0 0 3px}.module_list .module_list_item{display:table;width:100%;padding:5px 0;margin-bottom:4px;background-color:#fff;-webkit-box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.module_col_select{display:table-cell;width:22px;min-height:35px;vertical-align:middle;text-align:center;border-right:1px solid #ddd}.module_col_position{display:table-cell;width:60px;vertical-align:middle;text-align:right}.module_col_position .positions{font-family:"Ubuntu",sans-serif;font-weight:200;text-shadow:#fff 1px 1px;padding:0 5px;font-size:1.6em;color:#aaa;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset;box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset;border:solid 1px #ccc;background-color:#eee}.module_col_icon{display:table-cell;width:50px;text-align:center;vertical-align:middle}.module_col_infos{display:table-cell;height:50px;vertical-align:middle}.module_col_actions{display:table-cell;width:160px;padding:0 10px;vertical-align:middle;text-align:right}.module_col_actions .btn-group{text-align:left}li.sortable-placeholder{border:1px dashed #ccc;background-color:#bbb;margin-bottom:4px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.size_s,.size_md,.size_l,.size_xl,.size_xxl{font-family:"Ubuntu",sans-serif}.size_s{font-size:1.1em}.size_md{font-size:1.3em}.size_l{font-size:1.7em}.size_xl{font-size:2em}.size_xxl{font-size:2.3em}.color_success{color:#5cb85c}.color_danger{color:#d9534f}.dash_trend_down{color:red}.dash_trend_down:before{margin-right:4px;font-family:FontAwesome;content:"\f0ab"}.dash_trend_up{color:green}.dash_trend_up:before{margin-right:4px;font-family:FontAwesome;content:"\f0aa"}.dash_trend_right{color:#00008b}.dash_trend_right:before{margin-right:4px;font-family:FontAwesome;content:"\f0a9"}.box-stats{height:70px}#dashboard section header{padding:3px 8px;margin:0 0 3px 0;color:#fff;font-size:1.2em;background-color:#1ba6e5}#dashboard section header .small{font-variant:small-cap;text-transform:uppercase;font-size:0.7em}#dashboard section header.panel-heading,#dashboard section #header_notifs_icon_wrapper .notifs_panel header.notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #dashboard section header.notifs_panel_header{color:#555}#dashboard .data_list{margin:0 0 10px 0;padding:0}#dashboard .data_list li{position:relative}#dashboard .data_list .data_value{line-height:39px;position:absolute;top:0;right:0;padding:0 10px 0 0}#dashboard .data_list_small{margin:8px 0 10px 0;padding:0 0 0 0;border-top:solid 1px #ddd}#dashboard .data_list_small li{padding:3px 0;position:relative;border:none;margin:0;border-bottom:dashed 1px #ddd}#dashboard .data_list_small .data_label{text-transform:uppercase;color:#bbb}#dashboard .data_list_small .data_value{line-height:25px;position:absolute;top:0;right:0;padding:0}#dashboard .data_list_large{margin:8px 0 10px 0;padding:0}#dashboard .data_list_large li{padding:6px 0;position:relative;border:none;margin:0}#dashboard .data_list_large .data_label{line-height:0.8em}#dashboard .data_list_large .data_label small{font-size:0.6em}#dashboard .data_list_large .data_value{text-align:right;line-height:0.6em;position:absolute;top:0;right:0;padding:8px 0 0 0}#dashboard .data_list_large .data_value small{font-size:0.5em}#dashboard .data_list_vertical{padding:0;margin:0 0 10px 0;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}#dashboard .data_list_vertical li{border-left:solid 1px #ddd;padding:6px}#dashboard .data_list_vertical li:first-child{border:none}#dashboard .data_list_vertical .data_label{min-height:32px;display:block;line-height:1em;text-align:center}#dashboard .data_list_vertical .data_value{display:block;text-align:center}#dashboard #dashtrends header{margin-bottom:0}#dashboard #dashtrends #dashtrends_toolbar{margin:4px -16px}#dashboard #dashtrends dl{cursor:pointer;margin:0;min-height:120px;text-align:center;background-color:#fff;padding:10px;border-left:1px solid #ddd;border-bottom:1px solid #ddd}#dashboard #dashtrends dl:first-child{border-left:none}#dashboard #dashtrends dl.active{background-color:#eee}#dashboard #dashtrends dt{text-align:center;height:37px;line-height:1em;font:300 1.1em/120% "Ubuntu",sans-serif}#dashboard #dashtrends svg{height:350px}#dashboard #dashgoals svg{height:250px}#dashboard #dashaddons{background-color:#fff;border:1px dashed silver;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:10px 20px;font-size:1.3em;text-align:center}#dashboard #dashaddons a{display:block}#dashboard #dashaddons a:hover{text-decoration:none}#dashboard #dashactivity svg{height:150px}#dashboard .loading .data_value{min-width:30px;text-align:center}#dashboard .loading .data_value:before{font-size:0.7em;font-family:FontAwesome;content:"\f021";color:#ccc}#dashboard .loading .data_value span,#dashboard .loading .data_value small{display:none}#dashboard .loading .data_trend{display:none}.data_loading,#dashboard .data_value span,#dashboard .data_value .dash_trend{opacity:1;-webkit-animation-name:bounceG;animation-name:bounceG;-webkit-animation-duration:0.7s;animation-duration:0.7s;-webkit-animation-direction:linear;animation-direction:linear;-webkit-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}@-webkit-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-moz-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-ms-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-o-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}#dash_version{padding:0 !important;overflow:hidden}#dash_version iframe{height:80px;width:100%}.adminsearch #content .panel .panel,.adminsearch #content #header_notifs_icon_wrapper .notifs_panel .panel,#header_notifs_icon_wrapper .adminsearch #content .notifs_panel .panel,.adminsearch #content #dash_version .panel,.adminsearch #content .panel #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper .adminsearch #content .panel .notifs_panel,.adminsearch #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel,#header_notifs_icon_wrapper .adminsearch #content .notifs_panel .notifs_panel,.adminsearch #content #dash_version #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper .adminsearch #content #dash_version .notifs_panel,.adminsearch #content .panel #dash_version,.adminsearch #content #header_notifs_icon_wrapper .notifs_panel #dash_version,#header_notifs_icon_wrapper .adminsearch #content .notifs_panel #dash_version,.adminsearch #content #dash_version #dash_version{padding:0;margin:0;border:none;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;-webkit-box-shadow:0;box-shadow:0} + */.ladda-button{position:relative}.ladda-button .ladda-spinner{position:absolute;z-index:2;display:inline-block;width:32px;height:32px;top:50%;margin-top:-16px;opacity:0;pointer-events:none}.ladda-button .ladda-label{position:relative;z-index:3}.ladda-button .ladda-progress{position:absolute;width:0;height:100%;left:0;top:0;background:rgba(0,0,0,0.2);visibility:hidden;opacity:0;-webkit-transition:0.1s linear all !important;-moz-transition:0.1s linear all !important;-ms-transition:0.1s linear all !important;-o-transition:0.1s linear all !important;transition:0.1s linear all !important}.ladda-button .ladda-progress[data-loading] .ladda-progress{opacity:1;visibility:visible}.ladda-button,.ladda-button .ladda-spinner,.ladda-button .ladda-label{-webkit-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-moz-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-ms-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;-o-transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important}.ladda-button[data-style=zoom-in],.ladda-button[data-style=zoom-in] .ladda-spinner,.ladda-button[data-style=zoom-in] .ladda-label,.ladda-button[data-style=zoom-out],.ladda-button[data-style=zoom-out] .ladda-spinner,.ladda-button[data-style=zoom-out] .ladda-label{-webkit-transition:0.3s ease all !important;-moz-transition:0.3s ease all !important;-ms-transition:0.3s ease all !important;-o-transition:0.3s ease all !important;transition:0.3s ease all !important}.ladda-button[data-style=expand-right] .ladda-spinner{right:14px}.ladda-button[data-style=expand-right][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-right][data-size="xs"] .ladda-spinner{right:4px}.ladda-button[data-style=expand-right][data-loading]{padding-right:56px}.ladda-button[data-style=expand-right][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-right][data-loading][data-size="s"],.ladda-button[data-style=expand-right][data-loading][data-size="xs"]{padding-right:40px}.ladda-button[data-style=expand-left] .ladda-spinner{left:14px}.ladda-button[data-style=expand-left][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-left][data-size="xs"] .ladda-spinner{left:4px}.ladda-button[data-style=expand-left][data-loading]{padding-left:56px}.ladda-button[data-style=expand-left][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-left][data-loading][data-size="s"],.ladda-button[data-style=expand-left][data-loading][data-size="xs"]{padding-left:40px}.ladda-button[data-style=expand-up]{overflow:hidden}.ladda-button[data-style=expand-up] .ladda-spinner{top:-32px;left:50%;margin-left:-16px}.ladda-button[data-style=expand-up][data-loading]{padding-top:54px}.ladda-button[data-style=expand-up][data-loading] .ladda-spinner{opacity:1;top:14px;margin-top:0}.ladda-button[data-style=expand-up][data-loading][data-size="s"],.ladda-button[data-style=expand-up][data-loading][data-size="xs"]{padding-top:32px}.ladda-button[data-style=expand-up][data-loading][data-size="s"] .ladda-spinner,.ladda-button[data-style=expand-up][data-loading][data-size="xs"] .ladda-spinner{top:4px}.ladda-button[data-style=slide-left]{overflow:hidden}.ladda-button[data-style=slide-left] .ladda-label{position:relative}.ladda-button[data-style=slide-left] .ladda-spinner{left:100%;margin-left:-16px}.ladda-button[data-style=slide-left][data-loading] .ladda-label{opacity:0;left:-100%}.ladda-button[data-style=slide-left][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-right]{overflow:hidden}.ladda-button[data-style=slide-right] .ladda-label{position:relative}.ladda-button[data-style=slide-right] .ladda-spinner{right:100%;margin-left:-16px}.ladda-button[data-style=slide-right][data-loading] .ladda-label{opacity:0;left:100%}.ladda-button[data-style=slide-right][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-up]{overflow:hidden}.ladda-button[data-style=slide-up] .ladda-label{position:relative}.ladda-button[data-style=slide-up] .ladda-spinner{left:50%;margin-left:-16px;margin-top:1em}.ladda-button[data-style=slide-up][data-loading] .ladda-label{opacity:0;top:-1em}.ladda-button[data-style=slide-up][data-loading] .ladda-spinner{opacity:1;margin-top:-16px}.ladda-button[data-style=slide-down]{overflow:hidden}.ladda-button[data-style=slide-down] .ladda-label{position:relative}.ladda-button[data-style=slide-down] .ladda-spinner{left:50%;margin-left:-16px;margin-top:-2em}.ladda-button[data-style=slide-down][data-loading] .ladda-label{opacity:0;top:1em}.ladda-button[data-style=slide-down][data-loading] .ladda-spinner{opacity:1;margin-top:-16px}.ladda-button[data-style=zoom-out]{overflow:hidden}.ladda-button[data-style=zoom-out] .ladda-spinner{left:50%;margin-left:-16px;-webkit-transform:scale(2.5);-moz-transform:scale(2.5);-ms-transform:scale(2.5);-o-transform:scale(2.5);transform:scale(2.5)}.ladda-button[data-style=zoom-out] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-out][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-ms-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-spinner{opacity:1;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=zoom-in]{overflow:hidden}.ladda-button[data-style=zoom-in] .ladda-spinner{left:50%;margin-left:-16px;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.ladda-button[data-style=zoom-in] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-in][data-loading] .ladda-label{opacity:0;-webkit-transform:scale(2.2);-moz-transform:scale(2.2);-ms-transform:scale(2.2);-o-transform:scale(2.2);transform:scale(2.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-spinner{opacity:1;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.ladda-button[data-style=contract]{overflow:hidden;width:100px}.ladda-button[data-style=contract] .ladda-spinner{left:50%;margin-left:-16px}.ladda-button[data-style=contract][data-loading]{border-radius:50%;width:52px}.ladda-button[data-style=contract][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=contract-overlay]{overflow:hidden;width:100px;box-shadow:0px 0px 0px 3000px rgba(0,0,0,0)}.ladda-button[data-style=contract-overlay] .ladda-spinner{left:50%;margin-left:-16px}.ladda-button[data-style=contract-overlay][data-loading]{border-radius:50%;width:52px;box-shadow:0px 0px 0px 3000px rgba(0,0,0,0.8)}.ladda-button[data-style=contract-overlay][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner{opacity:1}.ladda-button[disabled],.ladda-button[data-loading]{border-color:rgba(0,0,0,0.07);cursor:default;background-color:#999}.ladda-button[disabled]:hover,.ladda-button[data-loading]:hover{cursor:default;background-color:#999}.ladda-button[data-size=xs]{padding:4px 8px}.ladda-button[data-size=xs] .ladda-label{font-size:0.7em}.ladda-button[data-size=s]{padding:6px 10px}.ladda-button[data-size=s] .ladda-label{font-size:0.9em}.ladda-button[data-size=l] .ladda-label{font-size:1.2em}.ladda-button[data-size=xl] .ladda-label{font-size:1.5em}#login{height:100%;background:-webkit-gradient(radial, 50% 50%, 0, 50% 50%, 40, color-stop(10%, rgba(104,128,138,0.4)), color-stop(40%, rgba(138,114,76,0))),-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(57,173,219,0.25)), color-stop(100%, rgba(42,60,87,0.4))),-webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #670d10), color-stop(100%, #092756));background:-webkit-radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),-webkit-linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),-webkit-linear-gradient(left top, #670d10,#092756);background:-moz-radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),-moz-linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),-moz-linear-gradient(left top, #670d10,#092756);background:-o-radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),-o-linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),-o-linear-gradient(left top, #670d10,#092756);background:radial-gradient(top left, rgba(104,128,138,0.4) 10%,rgba(138,114,76,0) 40%),linear-gradient(top, rgba(57,173,219,0.25),rgba(42,60,87,0.4)),linear-gradient(left top, #670d10,#092756)}#login-header{margin:0 0 60px 0;color:#fff}#login-panel{margin:0 auto;width:420px}#login-panel .panel,#login-panel #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #login-panel .notifs_panel,#login-panel #dash_version{-webkit-box-shadow:rgba(255,255,255,0.45) 0 0 0 6px;box-shadow:rgba(255,255,255,0.45) 0 0 0 6px}#login-panel .panel-footer,#login-panel #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #login-panel .notifs_panel_footer{margin:0 -20px -20px}#login-panel .flip-container{-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px;height:370px}#login-panel .flip-container.flip .flipper{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}#login-panel .flipper{-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;position:relative}#login-panel .front,#login-panel .back{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;width:420px;position:absolute;top:0;left:0}#login-panel .front{z-index:2}#login-panel .back{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}#login-footer a{color:#a0aab5}.animated{-webkit-animation-duration:1s;-moz-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInDown{0%{opacity:0;-moz-transform:translateY(-20px)}100%{opacity:1;-moz-transform:translateY(0)}}@-o-keyframes fadeInDown{0%{opacity:0;-o-transform:translateY(-20px)}100%{opacity:1;-o-transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}.animated.fadeInDown{-webkit-animation-name:fadeInDown;-moz-animation-name:fadeInDown;-o-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.animated.fadeIn{-webkit-animation-name:fadeIn;-moz-animation-name:fadeIn;-o-animation-name:fadeIn;animation-name:fadeIn}#carrier_wizard{position:relative;display:block}#carrier_wizard .stepContainer{position:relative;display:block;overflow:hidden;clear:both}#carrier_wizard .stepContainer div.content{position:absolute;display:block;width:100%;clear:both}#carrier_wizard .stepContainer .StepTitle{display:block;position:relative;clear:both}#carrier_wizard ul.anchor{position:relative;display:block;float:left;list-style:none;padding:0;margin:0 0 10px 0;clear:both;width:100%}#carrier_wizard ul.anchor.nbr_steps_4 li{width:25%;float:left}#carrier_wizard ul.anchor.nbr_steps_5 li{width:25%;float:left}#carrier_wizard li{position:relative;display:block;overflow:hidden}#carrier_wizard li a{color:#ccc;height:32px;display:block;position:relative;margin:0 16px 0 0;text-decoration:none;outline-style:none}#carrier_wizard li a .stepNumber{position:relative;float:left;width:24px;height:32px;margin-right:3px;text-align:center;padding:0 5px;font-size:30px;line-height:32px;color:#fff}#carrier_wizard li a .stepDesc{position:relative;text-align:left;font-size:13px;height:32px;display:table-cell;vertical-align:middle;line-height:13px}#carrier_wizard li a .chevron{border:16px solid transparent;border-left:14px solid #fff;border-right:0;position:absolute;right:-16px;top:0}#carrier_wizard li a .chevron:after{border:16px solid transparent;border-left:14px solid #ccc;border-right:0;position:absolute;content:"";right:2px;top:-16px}#carrier_wizard li a.disabled{color:#777;background-color:#ccc}#carrier_wizard li a.disabled .chevron:after{border-left:14px solid #ccc}#carrier_wizard li a.selected{color:#f8f8f8;cursor:text;background-color:#515561}#carrier_wizard li a.selected .chevron:after{border-left:14px solid #515561}#carrier_wizard li a.done{color:#fff;background-color:#5cb85c}#carrier_wizard li a.done .chevron:after{border-left:14px solid #5cb85c}#carrier_wizard .loader{display:none}#carrier_wizard .msgBox{position:relative;display:none;float:left;margin:4px 0 0 5px;padding:5px;border:1px solid gold;background-color:#ffd;color:#5a5655;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}#carrier_wizard .msgBox .content{padding:0px;float:left}#carrier_wizard #carrier_logo_block{right:10px}#carrier_wizard .range_inf td,#carrier_wizard .range_sup td{background-color:#ccc}#carrier_wizard .range_type{width:220px;text-align:right;font-weight:bold}#carrier_wizard .range_data{width:110px}#carrier_wizard .range_sign{width:18px;font-size:20px;text-align:center}#carrier_wizard .range_data_new{width:110px}#carrier_wizard table#zones_table{width:auto}#carrier_wizard .field_error{border-color:#d9534f}#carrier_wizard .actionBar{height:30px}#carrier_wizard .actionBar a{float:right;margin-right:10px}#module-list h3,#module-list #content .panel-heading,#content #module-list .panel-heading,#module-list #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#content #header_notifs_icon_wrapper .notifs_panel #module-list .notifs_panel_header,#module-list #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content #module-list .notifs_panel_header{position:relative;top:0;left:0;margin:0;padding:0;background-color:transparent;color:#515561;font-weight:500}.hook_panel{-webkit-box-shadow:rgba(255,255,255,0.9) 0 0 0 1px inset;box-shadow:rgba(255,255,255,0.9) 0 0 0 1px inset;padding:10px 10px 5px 10px;margin-bottom:3px !important}.module_name{font-size:1.2em}.hook_panel_header{margin:0 -10px 0 -10px;padding:0 10px 10px 10px}.hook_panel_header .hook_name{font-weight:400;font-size:1.2em;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;color:#1ba6e5;border:solid 1px #ccc;background-color:#fff;padding:0 4px}.hook_panel_header .hook_title{text-transform:uppercase;font-size:1em}.hook_panel_header .hook_description{padding:3px 0 0 3px}.module_list .module_list_item{display:table;width:100%;padding:5px 0;margin-bottom:4px;background-color:#fff;-webkit-box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;box-shadow:rgba(0,0,0,0.3) 0 0 3px,rgba(0,0,0,0.1) 0 -2px 0 inset;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.module_col_select{display:table-cell;width:22px;min-height:35px;vertical-align:middle;text-align:center;border-right:1px solid #ddd}.module_col_position{display:table-cell;width:60px;vertical-align:middle;text-align:right}.module_col_position .positions{font-family:"Ubuntu",sans-serif;font-weight:200;text-shadow:#fff 1px 1px;padding:0 5px;font-size:1.6em;color:#aaa;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset;box-shadow:rgba(0,0,0,0.2) 0 1px 3px inset;border:solid 1px #ccc;background-color:#eee}.module_col_icon{display:table-cell;width:50px;text-align:center;vertical-align:middle}.module_col_infos{display:table-cell;height:50px;vertical-align:middle}.module_col_actions{display:table-cell;width:160px;padding:0 10px;vertical-align:middle;text-align:right}.module_col_actions .btn-group{text-align:left}li.sortable-placeholder{border:1px dashed #ccc;background-color:#bbb;margin-bottom:4px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.size_s,.size_md,.size_l,.size_xl,.size_xxl{font-family:"Ubuntu",sans-serif}.size_s{font-size:1.1em}.size_md{font-size:1.3em}.size_l{font-size:1.7em}.size_xl{font-size:2em}.size_xxl{font-size:2.3em}.color_success{color:#5cb85c}.color_danger{color:#d9534f}.dash_trend_down{color:red}.dash_trend_down:before{margin-right:4px;font-family:FontAwesome;content:"\f0ab"}.dash_trend_up{color:green}.dash_trend_up:before{margin-right:4px;font-family:FontAwesome;content:"\f0aa"}.dash_trend_right{color:#00008b}.dash_trend_right:before{margin-right:4px;font-family:FontAwesome;content:"\f0a9"}.box-stats{height:70px}#dashboard section header{padding:3px 8px;margin:0 0 3px 0;color:#fff;font-size:1.2em;background-color:#1ba6e5}#dashboard section header .small{font-variant:small-cap;text-transform:uppercase;font-size:0.7em}#dashboard section header.panel-heading,#dashboard section #header_notifs_icon_wrapper .notifs_panel header.notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #dashboard section header.notifs_panel_header{color:#555}#dashboard .data_list{margin:0 0 10px 0;padding:0}#dashboard .data_list li{position:relative}#dashboard .data_list .data_value{line-height:39px;position:absolute;top:0;right:0;padding:0 10px 0 0}#dashboard .data_list_small{margin:8px 0 10px 0;padding:0 0 0 0;border-top:solid 1px #ddd}#dashboard .data_list_small li{padding:3px 0;position:relative;border:none;margin:0;border-bottom:dashed 1px #ddd}#dashboard .data_list_small .data_label{text-transform:uppercase;color:#bbb}#dashboard .data_list_small .data_value{line-height:25px;position:absolute;top:0;right:0;padding:0}#dashboard .data_list_large{margin:8px 0 10px 0;padding:0}#dashboard .data_list_large li{padding:6px 0;position:relative;border:none;margin:0}#dashboard .data_list_large .data_label{line-height:0.8em}#dashboard .data_list_large .data_label small{font-size:0.6em}#dashboard .data_list_large .data_value{text-align:right;line-height:0.6em;position:absolute;top:0;right:0;padding:8px 0 0 0}#dashboard .data_list_large .data_value small{font-size:0.5em}#dashboard .data_list_vertical{padding:0;margin:0 0 10px 0;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}#dashboard .data_list_vertical li{border-left:solid 1px #ddd;padding:6px}#dashboard .data_list_vertical li:first-child{border:none}#dashboard .data_list_vertical .data_label{min-height:32px;display:block;line-height:1em;text-align:center}#dashboard .data_list_vertical .data_value{display:block;text-align:center}#dashboard #dashtrends header{margin-bottom:0}#dashboard #dashtrends #dashtrends_toolbar{margin:4px -16px}#dashboard #dashtrends dl{cursor:pointer;margin:0;min-height:120px;text-align:center;background-color:#fff;padding:10px;border-left:1px solid #ddd;border-bottom:1px solid #ddd}#dashboard #dashtrends dl:first-child{border-left:none}#dashboard #dashtrends dl.active{background-color:#eee}#dashboard #dashtrends dt{text-align:center;height:37px;line-height:1em;font:300 1.1em/120% "Ubuntu",sans-serif}#dashboard #dashtrends svg{height:350px}#dashboard #dashgoals svg{height:250px}#dashboard #dashaddons{background-color:#fff;border:1px dashed silver;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:10px 20px;font-size:1.3em;text-align:center}#dashboard #dashaddons a{display:block}#dashboard #dashaddons a:hover{text-decoration:none}#dashboard #dashactivity svg{height:150px}#dashboard .loading .data_value{min-width:30px;text-align:center}#dashboard .loading .data_value:before{font-size:0.7em;font-family:FontAwesome;content:"\f021";color:#ccc}#dashboard .loading .data_value span,#dashboard .loading .data_value small{display:none}#dashboard .loading .data_trend{display:none}.data_loading,#dashboard .data_value span,#dashboard .data_value .dash_trend{opacity:1;-webkit-animation-name:bounceG;animation-name:bounceG;-webkit-animation-duration:0.7s;animation-duration:0.7s;-webkit-animation-direction:linear;animation-direction:linear;-webkit-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}@-webkit-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-moz-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-ms-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-o-keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@keyframes bounceG{0%{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0.1);-ms-transform:scale(0.1);transform:scale(0.1)}100%{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}#dash_version{padding:0 !important;overflow:hidden}#dash_version iframe{height:80px;width:100%}.adminsearch #content .panel .panel,.adminsearch #content #header_notifs_icon_wrapper .notifs_panel .panel,#header_notifs_icon_wrapper .adminsearch #content .notifs_panel .panel,.adminsearch #content #dash_version .panel,.adminsearch #content .panel #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper .adminsearch #content .panel .notifs_panel,.adminsearch #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel,#header_notifs_icon_wrapper .adminsearch #content .notifs_panel .notifs_panel,.adminsearch #content #dash_version #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper .adminsearch #content #dash_version .notifs_panel,.adminsearch #content .panel #dash_version,.adminsearch #content #header_notifs_icon_wrapper .notifs_panel #dash_version,#header_notifs_icon_wrapper .adminsearch #content .notifs_panel #dash_version,.adminsearch #content #dash_version #dash_version{padding:0;margin:0;border:none;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;-webkit-box-shadow:0;box-shadow:0} diff --git a/admin-dev/themes/default/css/admin-theme/_admin-nav.sass b/admin-dev/themes/default/css/admin-theme/_admin-nav.sass index a0ebbdfa2..f5a182692 100644 --- a/admin-dev/themes/default/css/admin-theme/_admin-nav.sass +++ b/admin-dev/themes/default/css/admin-theme/_admin-nav.sass @@ -70,7 +70,7 @@ background-color: $main-color text-transform: uppercase text-decoration: none - @include transition-property(background-color, border, box-shadow) + @include transition-property(background-color) @include transition-duration(0.4s) @include transition-timing-function(ease-out) i @@ -218,9 +218,6 @@ top: 0 .menu-collapse display: none - - - .menu-collapse height: 54px From 84be298dc56a45d9e35c6f76149c349867ec688d Mon Sep 17 00:00:00 2001 From: Kevin Granger Date: Fri, 1 Nov 2013 17:25:18 +0100 Subject: [PATCH 208/247] // some W3C fixs --- admin-dev/themes/default/template/header.tpl | 24 +++++++++---------- .../template/helpers/list/list_header.tpl | 5 ++-- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/admin-dev/themes/default/template/header.tpl b/admin-dev/themes/default/template/header.tpl index b18b90e27..30d58f73a 100644 --- a/admin-dev/themes/default/template/header.tpl +++ b/admin-dev/themes/default/template/header.tpl @@ -131,9 +131,9 @@ - +
    @@ -161,9 +161,9 @@ - +
    @@ -191,9 +191,9 @@ - +
    diff --git a/admin-dev/themes/default/template/helpers/list/list_header.tpl b/admin-dev/themes/default/template/helpers/list/list_header.tpl index 572a259de..a0773f287 100644 --- a/admin-dev/themes/default/template/helpers/list/list_header.tpl +++ b/admin-dev/themes/default/template/helpers/list/list_header.tpl @@ -74,7 +74,7 @@ {block name="startForm"} -
    + {/block} {if !$simple_header} @@ -181,7 +181,6 @@ {/if}
    {l s='Shop'}
    - +
    -
    @@ -222,8 +221,8 @@ + {/if} - {/if} {/foreach} {if $shop_link_type} From 5db9c5cdd541e73a00c295320b6950bec3e6d6e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Sat, 2 Nov 2013 09:54:37 +0100 Subject: [PATCH 209/247] // small fix --- controllers/front/AddressController.php | 3 +- themes/default-bootstrap/address.tpl | 28 +++++++-------- .../default-bootstrap/js/validate_fields.js | 35 +++++++++++++++++++ 3 files changed, 49 insertions(+), 17 deletions(-) create mode 100644 themes/default-bootstrap/js/validate_fields.js diff --git a/controllers/front/AddressController.php b/controllers/front/AddressController.php index f8575864b..6d6e449fa 100644 --- a/controllers/front/AddressController.php +++ b/controllers/front/AddressController.php @@ -43,8 +43,9 @@ class AddressControllerCore extends FrontController public function setMedia() { parent::setMedia(); - $this->addJS(_THEME_JS_DIR_.'tools/statesManagement.js'); $this->addJS(_PS_JS_DIR_.'validate.js'); + $this->addJS(_THEME_JS_DIR_.'tools/statesManagement.js'); + $this->addJS(_THEME_JS_DIR_.'validate_fields.js'); } /** diff --git a/themes/default-bootstrap/address.tpl b/themes/default-bootstrap/address.tpl index 908e6b4ef..dca74b6b7 100644 --- a/themes/default-bootstrap/address.tpl +++ b/themes/default-bootstrap/address.tpl @@ -114,41 +114,39 @@ $(function(){ldelim} {/if} {if $field_name eq 'firstname'}
    - - -
    - + + {/if} {if $field_name eq 'lastname'}
    - +
    {/if} {if $field_name eq 'address1'}
    - +
    {/if} {if $field_name eq 'address2'}
    - +
    {/if} {if $field_name eq 'postcode'} {assign var="postCodeExist" value="true"}
    - +
    {/if} {if $field_name eq 'city'}
    - +
    {* if customer hasn't update his layout address, country has to be verified @@ -200,8 +198,7 @@ $(function(){ldelim} {if $postCodeExist eq "false"}
    - +
    {/if} {if $stateExist eq "false"} @@ -214,12 +211,11 @@ $(function(){ldelim} {/if}
    - +
    - +
    {if isset($one_phone_at_least) && $one_phone_at_least}

    {l s='You must register at least one phone number.'}

    @@ -227,11 +223,11 @@ $(function(){ldelim}
    - +
    - +

    diff --git a/themes/default-bootstrap/js/validate_fields.js b/themes/default-bootstrap/js/validate_fields.js new file mode 100644 index 000000000..446382cad --- /dev/null +++ b/themes/default-bootstrap/js/validate_fields.js @@ -0,0 +1,35 @@ +/* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ +$(document).ready(function() { + $('input.validate, textarea.validate').keyup(function() { + if ($(this).hasClass('is_required') || $(this).val().length) + { + if (window['validate_'+$(this).attr('data-validate')]($(this).val())) + $(this).parent().removeClass('form-error').addClass('form-ok'); + else + $(this).parent().addClass('form-error').removeClass('form-ok'); + } + }); +}); From 930c9f3ff5bba0a45ecf11717792cbb8e23c6809 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Sat, 2 Nov 2013 10:50:02 +0100 Subject: [PATCH 210/247] // validators --- controllers/front/AuthController.php | 2 + controllers/front/IdentityController.php | 2 + js/validate.js | 83 ++++++++++++++++++- themes/default-bootstrap/authentication.tpl | 20 ++--- themes/default-bootstrap/identity.tpl | 12 +-- .../default-bootstrap/js/validate_fields.js | 2 +- 6 files changed, 103 insertions(+), 18 deletions(-) diff --git a/controllers/front/AuthController.php b/controllers/front/AuthController.php index 505630aaa..1f4520d46 100644 --- a/controllers/front/AuthController.php +++ b/controllers/front/AuthController.php @@ -60,6 +60,8 @@ class AuthControllerCore extends FrontController $this->addCSS(_THEME_CSS_DIR_.'authentication.css'); $this->addJqueryPlugin('typewatch'); $this->addJS(_THEME_JS_DIR_.'tools/statesManagement.js'); + $this->addJS(_PS_JS_DIR_.'validate.js'); + $this->addJS(_THEME_JS_DIR_.'validate_fields.js'); } /** diff --git a/controllers/front/IdentityController.php b/controllers/front/IdentityController.php index 109cf3bc8..ee9a0c913 100644 --- a/controllers/front/IdentityController.php +++ b/controllers/front/IdentityController.php @@ -142,6 +142,8 @@ class IdentityControllerCore extends FrontController { parent::setMedia(); $this->addCSS(_THEME_CSS_DIR_.'identity.css'); + $this->addJS(_PS_JS_DIR_.'validate.js'); + $this->addJS(_THEME_JS_DIR_.'validate_fields.js'); } } diff --git a/js/validate.js b/js/validate.js index 766d319ed..82466ab47 100644 --- a/js/validate.js +++ b/js/validate.js @@ -1,3 +1,74 @@ +/* unicode_hack.js +* Copyright (C) 2010-2012 Marcelo Gibson de Castro Gonçalves. All rights reserved. +* +* Copying and distribution of this file, with or without modification, +* are permitted in any medium without royalty provided the copyright +* notice and this notice are preserved. This file is offered as-is, +* without any warranty. +*/ +var unicode_hack = (function() { + /* Regexps to match characters in the BMP according to their Unicode category. + Extracted from Unicode specification, version 5.0.0, source: + http://unicode.org/versions/Unicode5.0.0/ + */ + var unicodeCategories = { + Pi:'[\u00ab\u2018\u201b\u201c\u201f\u2039\u2e02\u2e04\u2e09\u2e0c\u2e1c]', + Sk:'[\u005e\u0060\u00a8\u00af\u00b4\u00b8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02ed\u02ef-\u02ff\u0374\u0375\u0384\u0385\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u309b\u309c\ua700-\ua716\ua720\ua721\uff3e\uff40\uffe3]', + Sm:'[\u002b\u003c-\u003e\u007c\u007e\u00ac\u00b1\u00d7\u00f7\u03f6\u2044\u2052\u207a-\u207c\u208a-\u208c\u2140-\u2144\u214b\u2190-\u2194\u219a\u219b\u21a0\u21a3\u21a6\u21ae\u21ce\u21cf\u21d2\u21d4\u21f4-\u22ff\u2308-\u230b\u2320\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27ca\u27d0-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec]', + So:'[\u00a6\u00a7\u00a9\u00ae\u00b0\u00b6\u0482\u060e\u060f\u06e9\u06fd\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0cf1\u0cf2\u0f01-\u0f03\u0f13-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fcf\u1360\u1390-\u1399\u1940\u19e0-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u214a\u214c\u214d\u2195-\u2199\u219c-\u219f\u21a1\u21a2\u21a4\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u23e7\u2400-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u269c\u26a0-\u26b2\u2701-\u2704\u2706-\u2709\u270c-\u2727\u2729-\u274b\u274d\u274f-\u2752\u2756\u2758-\u275e\u2761-\u2767\u2794\u2798-\u27af\u27b1-\u27be\u2800-\u28ff\u2b00-\u2b1a\u2b20-\u2b23\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u3190\u3191\u3196-\u319f\u31c0-\u31cf\u3200-\u321e\u322a-\u3243\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ufdfd\uffe4\uffe8\uffed\uffee\ufffc\ufffd]', + Po:'[\u0021-\u0023\u0025-\u0027\u002a\u002c\u002e\u002f\u003a\u003b\u003f\u0040\u005c\u00a1\u00b7\u00bf\u037e\u0387\u055a-\u055f\u0589\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f85\u0fd0\u0fd1\u104a-\u104f\u10fb\u1361-\u1368\u166d\u166e\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944\u1945\u19de\u19df\u1a1e\u1a1f\u1b5a-\u1b60\u2016\u2017\u2020-\u2027\u2030-\u2038\u203b-\u203e\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205e\u2cf9-\u2cfc\u2cfe\u2cff\u2e00\u2e01\u2e06-\u2e08\u2e0b\u2e0e-\u2e16\u3001-\u3003\u303d\u30fb\ua874-\ua877\ufe10-\ufe16\ufe19\ufe30\ufe45\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff07\uff0a\uff0c\uff0e\uff0f\uff1a\uff1b\uff1f\uff20\uff3c\uff61\uff64\uff65]', + Mn:'[\u0300-\u036f\u0483-\u0486\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u0615\u064b-\u065e\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0901\u0902\u093c\u0941-\u0948\u094d\u0951-\u0954\u0962\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a70\u0a71\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3f\u0b41-\u0b43\u0b4d\u0b56\u0b82\u0bc0\u0bcd\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0cbc\u0cbf\u0cc6\u0ccc\u0ccd\u0ce2\u0ce3\u0d41-\u0d43\u0d4d\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032\u1036\u1037\u1039\u1058\u1059\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1dc0-\u1dca\u1dfe\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20ef\u302a-\u302f\u3099\u309a\ua806\ua80b\ua825\ua826\ufb1e\ufe00-\ufe0f\ufe20-\ufe23]', + Ps:'[\u0028\u005b\u007b\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3e\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62]', + Cc:'[\u0000-\u001f\u007f-\u009f]', + Cf:'[\u00ad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u202a-\u202e\u2060-\u2063\u206a-\u206f\ufeff\ufff9-\ufffb]', + Ll:'[\u0061-\u007a\u00aa\u00b5\u00ba\u00df-\u00f6\u00f8-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u037b-\u037d\u0390\u03ac-\u03ce\u03d0\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0561-\u0587\u1d00-\u1d2b\u1d62-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9b\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1f00-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6\u1fc7\u1fd0-\u1fd3\u1fd6\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6\u1ff7\u2071\u207f\u210a\u210e\u210f\u2113\u212f\u2134\u2139\u213c\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65\u2c66\u2c68\u2c6a\u2c6c\u2c74\u2c76\u2c77\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3\u2ce4\u2d00-\u2d25\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a]', + Lm:'[\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ee\u037a\u0559\u0640\u06e5\u06e6\u07f4\u07f5\u07fa\u0e46\u0ec6\u10fc\u17d7\u1843\u1d2c-\u1d61\u1d78\u1d9b-\u1dbf\u2090-\u2094\u2d6f\u3005\u3031-\u3035\u303b\u309d\u309e\u30fc-\u30fe\ua015\ua717-\ua71a\uff70\uff9e\uff9f]', + Lo:'[\u01bb\u01c0-\u01c3\u0294\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0641-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u076d\u0780-\u07a5\u07b1\u07ca-\u07ea\u0904-\u0939\u093d\u0950\u0958-\u0961\u097b-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60\u0d61\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e45\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0edc\u0edd\u0f00\u0f40-\u0f47\u0f49-\u0f6a\u0f88-\u0f8b\u1000-\u1021\u1023-\u1027\u1029\u102a\u1050-\u1055\u10d0-\u10fa\u1100-\u1159\u115f-\u11a2\u11a8-\u11f9\u1200-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u1676\u1681-\u169a\u16a0-\u16ea\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc\u1820-\u1842\u1844-\u1877\u1880-\u18a8\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19a9\u19c1-\u19c7\u1a00-\u1a16\u1b05-\u1b33\u1b45-\u1b4b\u2135-\u2138\u2d30-\u2d65\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006\u303c\u3041-\u3096\u309f\u30a1-\u30fa\u30ff\u3105-\u312c\u3131-\u318e\u31a0-\u31b7\u31f0-\u31ff\u3400\u4db5\u4e00\u9fbb\ua000-\ua014\ua016-\ua48c\ua800\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\uac00\ud7a3\uf900-\ufa2d\ufa30-\ufa6a\ufa70-\ufad9\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]', + Co:'[\ue000\uf8ff]', + Nd:'[\u0030-\u0039\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1b50-\u1b59\uff10-\uff19]', + Lt:'[\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc]', + Lu:'[\u0041-\u005a\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u0179\u017b\u017d\u0181\u0182\u0184\u0186\u0187\u0189-\u018b\u018e-\u0191\u0193\u0194\u0196-\u0198\u019c\u019d\u019f\u01a0\u01a2\u01a4\u01a6\u01a7\u01a9\u01ac\u01ae\u01af\u01b1-\u01b3\u01b5\u01b7\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a\u023b\u023d\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0386\u0388-\u038a\u038c\u038e\u038f\u0391-\u03a1\u03a3-\u03ab\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0531-\u0556\u10a0-\u10c5\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c75\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\uff21-\uff3a]', + Cs:'[\ud800\udb7f\udb80\udbff\udc00\udfff]', + Zl:'[\u2028]', + Nl:'[\u16ee-\u16f0\u2160-\u2182\u3007\u3021-\u3029\u3038-\u303a]', + Zp:'[\u2029]', + No:'[\u00b2\u00b3\u00b9\u00bc-\u00be\u09f4-\u09f9\u0bf0-\u0bf2\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u2070\u2074-\u2079\u2080-\u2089\u2153-\u215f\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3192-\u3195\u3220-\u3229\u3251-\u325f\u3280-\u3289\u32b1-\u32bf]', + Zs:'[\u0020\u00a0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000]', + Sc:'[\u0024\u00a2-\u00a5\u060b\u09f2\u09f3\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20b5\ufdfc\ufe69\uff04\uffe0\uffe1\uffe5\uffe6]', + Pc:'[\u005f\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f]', + Pd:'[\u002d\u058a\u1806\u2010-\u2015\u2e17\u301c\u3030\u30a0\ufe31\ufe32\ufe58\ufe63\uff0d]', + Pe:'[\u0029\u005d\u007d\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e\u301f\ufd3f\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63]', + Pf:'[\u00bb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d]', + Me:'[\u0488\u0489\u06de\u20dd-\u20e0\u20e2-\u20e4]', + Mc:'[\u0903\u093e-\u0940\u0949-\u094c\u0982\u0983\u09be-\u09c0\u09c7\u09c8\u09cb\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb\u0acc\u0b02\u0b03\u0b3e\u0b40\u0b47\u0b48\u0b4b\u0b4c\u0b57\u0bbe\u0bbf\u0bc1\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7\u0cc8\u0cca\u0ccb\u0cd5\u0cd6\u0d02\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2\u0df3\u0f3e\u0f3f\u0f7f\u102c\u1031\u1038\u1056\u1057\u17b6\u17be-\u17c5\u17c7\u17c8\u1923-\u1926\u1929-\u192b\u1930\u1931\u1933-\u1938\u19b0-\u19c0\u19c8\u19c9\u1a19-\u1a1b\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43\u1b44\ua802\ua823\ua824\ua827]' + }; + /* Also supports the general category (only the first letter) */ + var firstLetters = {}; + for ( var p in unicodeCategories ) { + if ( firstLetters[p[0]] ) + firstLetters[p[0]] = unicodeCategories[p].substring(0,unicodeCategories[p].length-1) + firstLetters[p[0]].substring(1); + else + firstLetters[p[0]] = unicodeCategories[p]; + } + for ( var p in firstLetters ) + unicodeCategories[p] = firstLetters[p]; + + /* Gets a regex written in a dialect that supports unicode categories and + translates it to a dialect supported by JavaScript. */ + return function(regexpString) { + var modifiers = ""; + if ( regexpString instanceof RegExp ) { + modifiers = (regexpString.global ? "g" : "") + + (regexpString.ignoreCase ? "i" : "") + + (regexpString.multiline ? "m" : ""); + regexpString = regexpString.source; + } + regexpString = regexpString.replace(/\\p\{(..?)\}/g, function(match,group) { + return unicodeCategories[group] || match; + }); + return new RegExp(regexpString,modifiers); + }; +})(); /* * 2007-2013 PrestaShop * @@ -22,7 +93,6 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ - function validate_isName(s) { var reg = /^[^0-9!<>,;?=+()@#"°{}_$%:]+$/; @@ -70,3 +140,14 @@ function validate_isDniLite(s) var reg = /^[0-9a-z-.]{1,16}$/i; return reg.test(s); } + +function validate_isEmail(s) +{ + var reg = unicode_hack('^[a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]+[.a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]*@[a-z\p{L}0-9]+[._a-z\p{L}0-9-]*\.[a-z0-9]+$'); + return reg.test(s); +} + +function validate_isPasswd(s) +{ + return (s.length >= 5 && s.length < 255); +} diff --git a/themes/default-bootstrap/authentication.tpl b/themes/default-bootstrap/authentication.tpl index 183e0ded7..1c1d89f81 100644 --- a/themes/default-bootstrap/authentication.tpl +++ b/themes/default-bootstrap/authentication.tpl @@ -166,7 +166,7 @@ $(document).ready(function() {

    - +
    {if isset($back)}{/if} @@ -184,11 +184,11 @@ $(document).ready(function() {
    - +
    - +

    {l s='Forgot your password?'}

    @@ -209,7 +209,7 @@ $(document).ready(function() {

    - +
    @@ -224,12 +224,12 @@ $(document).ready(function() {
    - +
    - +
    @@ -412,19 +412,19 @@ $(document).ready(function() {
    - +
    - +
    - +
    - + {l s='(Five characters minimum)'}
    diff --git a/themes/default-bootstrap/identity.tpl b/themes/default-bootstrap/identity.tpl index 8bbff3bcf..52c98dbe0 100644 --- a/themes/default-bootstrap/identity.tpl +++ b/themes/default-bootstrap/identity.tpl @@ -52,15 +52,15 @@
    - +
    - +
    - +
    @@ -107,15 +107,15 @@
    - +
    - +
    - +
    {if $newsletter}
    diff --git a/themes/default-bootstrap/js/validate_fields.js b/themes/default-bootstrap/js/validate_fields.js index 446382cad..a06a47fee 100644 --- a/themes/default-bootstrap/js/validate_fields.js +++ b/themes/default-bootstrap/js/validate_fields.js @@ -23,7 +23,7 @@ * International Registered Trademark & Property of PrestaShop SA */ $(document).ready(function() { - $('input.validate, textarea.validate').keyup(function() { + $('input.validate, textarea.validate').on('keyup', function() { if ($(this).hasClass('is_required') || $(this).val().length) { if (window['validate_'+$(this).attr('data-validate')]($(this).val())) From 95b5036782a3d9ac7d6465ffaf74099a39970101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Sat, 2 Nov 2013 15:41:40 +0100 Subject: [PATCH 211/247] // addsharethis cache --- modules/addsharethis/addsharethis.php | 101 ++++++++++++++++---------- 1 file changed, 64 insertions(+), 37 deletions(-) diff --git a/modules/addsharethis/addsharethis.php b/modules/addsharethis/addsharethis.php index 825d3e1c9..3abb04d33 100644 --- a/modules/addsharethis/addsharethis.php +++ b/modules/addsharethis/addsharethis.php @@ -47,6 +47,9 @@ class AddShareThis extends Module parent::install() && $this->registerHook('Extraright') && $this->registerHook('header') && + $this->registerHook('actionObjectProductUpdateAfter') && + $this->registerHook('actionObjectProductDeleteAfter') && + $this->registerHook('actionObjectProductAddAfter') && Configuration::updateValue('CONF_ROW', 'ea22d519-9f98-4018-99a9-5b5f1b100fa8') && Configuration::updateValue('ADDTHISSHARE_TWITTER', 1) && Configuration::updateValue('ADDTHISSHARE_GOOGLE', 1) && @@ -120,58 +123,66 @@ class AddShareThis extends Module Configuration::updateValue('ADDTHISSHARE_GOOGLE', (int)Tools::getValue('Google')); Configuration::updateValue('ADDTHISSHARE_PINTEREST', (int)Tools::getValue('Pinterest')); Configuration::updateValue('ADDTHISSHARE_FACEBOOK', (int)Tools::getValue('Facebook')); + $this->_clearCache('addsharethis.tpl'); } - + public function hookDisplayHeader($params) { - $id_lang = (int)$this->context->language->id; - $product = new Product((int)Tools::getValue('id_product'), false, $id_lang); - $productLink = $this->context->link->getProductLink($product); - $images = $product->getImages((int)$id_lang); + if ($this->context->controller->php_self != 'product') + return; - foreach ($images AS $k => $image) - if ($image['cover']) - { - $cover['id_image'] = (int)$product->id.'-'.(int)$image['id_image']; - $cover['legend'] = $image['legend']; - break; - } + $product = $this->context->controller->getProduct(); + $cache_id = 'addsharethis_header|'.(int)$product->id.'|'.(int)Tools::usingSecureMode().'|'.(int)$this->context->shop->id.'|'.(int)$this->context->language->id; + if (!$this->isCached('addsharethis_header.tpl', $cache_id)) + { + $id_lang = (int)$this->context->language->id; + $images = $product->getImages((int)$id_lang); + foreach ($images AS $k => $image) + if ($image['cover']) + { + $cover['id_image'] = (int)$product->id.'-'.(int)$image['id_image']; + $cover['legend'] = $image['legend']; + break; + } - if (!isset($cover)) - $cover = array('id_image' => Language::getIsoById((int)$id_lang).'-default', 'legend' => 'No picture'); + if (!isset($cover)) + $cover = array('id_image' => Language::getIsoById((int)$id_lang).'-default', 'legend' => 'No picture'); - $this->context->smarty->assign(array( - 'cover' => $cover, - 'product' => $product, - 'productLink' => $productLink, - 'this_path' => $this->_path - ) - ); - - return $this->display(__FILE__, 'addsharethis_header.tpl'); + $this->context->smarty->assign(array( + 'cover' => $cover, + 'product' => $product, + 'this_path' => $this->_path + ) + ); + } + return $this->display(__FILE__, 'addsharethis_header.tpl', $cache_id); } public function hookExtraRight($params) { - if (Configuration::get('ADDTHISSHARE_TWITTER')) - $data['twitter'] = ''; + $cache_id = 'addsharethis_content|'.(int)$this->context->shop->id; + if (!$this->isCached('addsharethis.tpl', $cache_id)) + { + if (Configuration::get('ADDTHISSHARE_TWITTER')) + $data['twitter'] = ''; - if (Configuration::get('ADDTHISSHARE_GOOGLE')) - $data['google'] = ''; + if (Configuration::get('ADDTHISSHARE_GOOGLE')) + $data['google'] = ''; - if (Configuration::get('ADDTHISSHARE_PINTEREST')) - $data['pinterest'] = ''; + if (Configuration::get('ADDTHISSHARE_PINTEREST')) + $data['pinterest'] = ''; - if (Configuration::get('ADDTHISSHARE_FACEBOOK')) - $data['facebook'] = ''; + if (Configuration::get('ADDTHISSHARE_FACEBOOK')) + $data['facebook'] = ''; - $this->context->smarty->assign(array( - 'addsharethis_data' => $data, - 'conf_row' => Configuration::get('CONF_ROW') - ) - ); + $this->context->smarty->assign(array( + 'addsharethis_data' => $data, + 'conf_row' => Configuration::get('CONF_ROW') + ) + ); + } - return $this->display(__FILE__, 'addsharethis.tpl'); + return $this->display(__FILE__, 'addsharethis.tpl', $cache_id); } public function hookLeftColumn($params) @@ -203,4 +214,20 @@ class AddShareThis extends Module { return $this->hookExtraRight($params); } + + + public function hookActionObjectProductUpdateAfter($params) + { + return $this->_clearCache('addsharethis_header.tpl', 'addsharethis_header|'.(int)$params['object']->id); + } + + public function hookActionObjectProductDeleteAfter($params) + { + return $this->hookActionObjectProductUpdateAfter($params); + } + + public function hookActionObjectProductAddAfter($params) + { + return $this->hookActionObjectProductUpdateAfter($params); + } } \ No newline at end of file From c4d18e5e9f348746e40e45d499733a9489322f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Sat, 2 Nov 2013 16:01:06 +0100 Subject: [PATCH 212/247] avatar on customer threads --- .../controllers/customer_threads/message.tpl | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/customer_threads/message.tpl b/admin-dev/themes/default/template/controllers/customer_threads/message.tpl index adc7b9173..ac3651e00 100644 --- a/admin-dev/themes/default/template/controllers/customer_threads/message.tpl +++ b/admin-dev/themes/default/template/controllers/customer_threads/message.tpl @@ -23,17 +23,14 @@ * International Registered Trademark & Property of PrestaShop SA *} - - {if !$email} - - {if !$email} {if empty($message.id_employee)}
    @@ -189,7 +176,6 @@
    {/if} - -{/if} - +{/if} \ No newline at end of file From a5bb4f0323e24bd1d4b8181b26f38c5686e1570b Mon Sep 17 00:00:00 2001 From: gRoussac Date: Sat, 2 Nov 2013 20:39:53 +0100 Subject: [PATCH 213/247] [-] IN: Fix [insert order detail 1] error while upgrading --- install-dev/upgrade/php/migrate_orders.php | 32 ++++++++++------------ 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/install-dev/upgrade/php/migrate_orders.php b/install-dev/upgrade/php/migrate_orders.php index 5823e3cb3..ed5699028 100644 --- a/install-dev/upgrade/php/migrate_orders.php +++ b/install-dev/upgrade/php/migrate_orders.php @@ -75,7 +75,7 @@ function migrate_orders() WHERE name = "PS_GIFT_WRAPPING_TAX"') / 100); $cpt = 0; - $flush_limit = 500; + $flush_limit = 250; while ($order = Db::getInstance()->nextRow($order_res)) { $sum_total_products = 0; @@ -115,7 +115,8 @@ function migrate_orders() else $order_details[$k] = Db::getInstance()->escape($order_details[$k]); } - $values_order_detail[] = '(\''.implode('\', \'', $order_details).'\')'; + if (count($order_details)) + $values_order_detail[] = '(\''.implode('\', \'', $order_details).'\')'; } $average_tax_used = 1; @@ -154,34 +155,31 @@ function migrate_orders() if ($cpt >= $flush_limit) { $cpt = 0; - if (!Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) + + if (count($values_order_detail) && !Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) { $res = false; $array_errors[] = '[insert order detail 1] - '.Db::getInstance()->getMsgError(); } - if (!Db::getInstance()->execute($insert_order. implode(',', $values_order))) + if (count($values_order) && !Db::getInstance()->execute($insert_order. implode(',', $values_order))) { $res = false; - $array_errors[] = '[insert order 1] - '.Db::getInstance()->getMsgError(); + $array_errors[] = '[insert order 2] - '.Db::getInstance()->getMsgError(); } $values_order = array(); $values_order_detail = array(); } } - if (count($values_order_detail)) + if (count($values_order_detail) && !Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) { - - if (!Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) - { - $res = false; - $array_errors[] = '[insert order detail 2] - '.Db::getInstance()->getMsgError(); - } - if (!Db::getInstance()->execute($insert_order. implode(',', $values_order))) - { - $res = false; - $array_errors[] = '[insert order 2] - '.Db::getInstance()->getMsgError(); - } + $res = false; + $array_errors[] = '[insert order detail 3] - '.Db::getInstance()->getMsgError(); + } + if (count($values_order) && !Db::getInstance()->execute($insert_order. implode(',', $values_order))) + { + $res = false; + $array_errors[] = '[insert order 4] - '.Db::getInstance()->getMsgError(); } if (!mo_renameTables()) From 8f72282594474bd841168ef94c02b8ce14a2ef95 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Sat, 2 Nov 2013 21:51:13 +0100 Subject: [PATCH 214/247] [-] IN : update_customer_default_group returning false --- .../php/update_customer_default_group.php | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/install-dev/upgrade/php/update_customer_default_group.php b/install-dev/upgrade/php/update_customer_default_group.php index 9ce468a41..253667c3d 100644 --- a/install-dev/upgrade/php/update_customer_default_group.php +++ b/install-dev/upgrade/php/update_customer_default_group.php @@ -29,16 +29,19 @@ function update_customer_default_group() $filename = _PS_ROOT_DIR_.'/config/defines.inc.php'; $filename_old = str_replace('.inc.', '.old.', $filename); copy($filename, $filename_old); - @chmod($filename_old, 0664); + chmod($filename_old, 0664); $content = file_get_contents($filename); $pattern = "/define\('_PS_DEFAULT_CUSTOMER_GROUP_', (\d)\);/"; preg_match($pattern, $content, $matches); if (!defined('_PS_DEFAULT_CUSTOMER_GROUP_')) - define('_PS_DEFAULT_CUSTOMER_GROUP_', ((isset($matches[1]) AND is_numeric($matches[1]))? (int)$matches[1] : 3)); - $ps_customer_group = DB::getInstance()->getValue('SELECT value FROM `'._DB_PREFIX_.'configuration` WHERE name LIKE "PS_CUSTOMER_GROUP"', false); - $str_old = 'define(\'_PS_DEFAULT_CUSTOMER_GROUP_\', '.(int)_PS_DEFAULT_CUSTOMER_GROUP_.');'; - $str_new = 'define(\'_PS_DEFAULT_CUSTOMER_GROUP_\', '.(int)$ps_customer_group.');'; - $content = str_replace($str_old, $str_new, $content); + define('_PS_DEFAULT_CUSTOMER_GROUP_', ((isset($matches[1]) AND is_numeric($matches[1]))? $matches[1] : 3)); + $ps_customer_group = DB::getInstance()->getValue('SELECT value FROM `'._DB_PREFIX_.'configuration` WHERE name LIKE "PS_CUSTOMER_GROUP"', false); + if ($ps_customer_group) + { + $str_old = 'define(\'_PS_DEFAULT_CUSTOMER_GROUP_\', '.(int)_PS_DEFAULT_CUSTOMER_GROUP_.');'; + $str_new = 'define(\'_PS_DEFAULT_CUSTOMER_GROUP_\', '.(int)$ps_customer_group.');'; + $content = str_replace($str_old, $str_new, $content); + } $carriers = Db::getInstance()->executeS(' SELECT `id_carrier` @@ -50,21 +53,22 @@ function update_customer_default_group() FROM `'._DB_PREFIX_.'configuration` WHERE `name` IN (\'PS_UNIDENTIFIED_GROUP\', \'PS_GUEST_GROUP\')'); - $result = false; + $result = true; if (count($carriers) && is_array($carriers) && count($groups) && is_array($groups)) foreach ($carriers as $carrier) foreach ($groups as $group) - Db::getInstance()->execute(' + $result &= (bool)Db::getInstance()->execute(' INSERT IGNORE INTO `'._DB_PREFIX_.'carrier_group` VALUES ('.(int)$carrier['id_carrier'].', '.(int)$group['id_group'].')'); - if(file_exists($filename) && is_writable($filename)) - $result &= (bool)@file_put_contents($filename, $content); - if($result === true && file_exists($filename) && file_exists($filename_old)) + if($result && file_exists($filename) && is_writable($filename)) { - @unlink($filename_old); - @chmod($filename, 0664); - return true; + $result &= (bool)file_put_contents($filename, $content); + if($result && file_exists($filename_old)) + { + $result &= (bool)unlink($filename_old); + chmod($filename, 0664); + } } - return false; + return $result; } \ No newline at end of file From b16e4b5a8ee6bdab13808f8ab473bda6c060c086 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Sun, 3 Nov 2013 01:49:16 +0100 Subject: [PATCH 215/247] [-] IN : Lower memory usage in migrate_orders, fix update_order_messages loop --- install-dev/upgrade/php/migrate_orders.php | 208 +++++++++--------- .../upgrade/php/update_order_messages.php | 2 + 2 files changed, 108 insertions(+), 102 deletions(-) diff --git a/install-dev/upgrade/php/migrate_orders.php b/install-dev/upgrade/php/migrate_orders.php index ed5699028..9028ab073 100644 --- a/install-dev/upgrade/php/migrate_orders.php +++ b/install-dev/upgrade/php/migrate_orders.php @@ -34,9 +34,6 @@ function migrate_orders() if (!defined('PS_TAX_INC')) define('PS_TAX_INC', 0); - // init insert order detail query - $values_order_detail = array(); - $col_order_detail = array(); $col_order_detail_old = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'order_detail`'); foreach ($col_order_detail_old as $k => $field) if ($field['Field'] != 'id_order_invoice') @@ -47,8 +44,6 @@ function migrate_orders() $insert_order_detail = 'INSERT INTO `'._DB_PREFIX_.'order_detail_2` (`'.implode('`, `', $col_order_detail).'`) VALUES '; - // init insert order query - $values_order = array(); $col_orders = array(); $col_orders_old = Db::getInstance()->executeS('SHOW FIELDS FROM `'._DB_PREFIX_.'orders`'); @@ -65,123 +60,133 @@ function migrate_orders() if (!$res) $array_errors[] = 'unable to duplicate tables orders and order_detail'; - $order_res = Db::getInstance()->query( - 'SELECT * - FROM `'._DB_PREFIX_.'orders`'); - // this was done like that previously $wrapping_tax_rate = 1 + ((float)Db::getInstance()->getValue('SELECT value FROM `'._DB_PREFIX_.'configuration` WHERE name = "PS_GIFT_WRAPPING_TAX"') / 100); - $cpt = 0; - $flush_limit = 250; - while ($order = Db::getInstance()->nextRow($order_res)) + $step = 3000; + $count_orders = Db::getInstance()->getValue('SELECT count(id_order) FROM '._DB_PREFIX_.'orders'); + $nb_loop = $start = 0; + if($count_orders > 0) + $nb_loop = ceil($count_orders / $step); + for($i = 0; $i < $nb_loop; $i++) { - $sum_total_products = 0; - $sum_tax_amount = 0; - $default_group_id = mo_getCustomerDefaultGroup((int)$order['id_customer']); - $price_display_method = mo_getPriceDisplayMethod((int)$default_group_id); - $order_details_list = Db::getInstance()->executeS(' - SELECT od.* - FROM `'._DB_PREFIX_.'order_detail` od - WHERE od.`id_order` = '.(int)$order['id_order']); - - foreach ($order_details_list as $order_details) + $order_res = Db::getInstance()->query('SELECT * FROM `'._DB_PREFIX_.'orders` LIMIT '.(int)$start.', '.(int)$step); + $start = intval(($i+1) * $step); + $cpt = 0; + $flush_limit = 200; + while ($order = Db::getInstance()->nextRow($order_res)) { - // we don't want to erase order_details data in order to create the insert query - $products = mo_setProductPrices($order_details, $price_display_method); - $tax_rate = 1 + ((float)$products['tax_rate'] / 100); - $reduction_amount_tax_incl = (float)$products['reduction_amount']; - - // cart::getTaxesAverageUsed equivalent - $sum_total_products += $products['total_price']; - - $sum_tax_amount += $products['total_wt'] - $products['total_price']; - - $order_details['reduction_amount_tax_incl'] = $reduction_amount_tax_incl; - $order_details['reduction_amount_tax_excl'] = (float)mo_ps_round($reduction_amount_tax_incl / $tax_rate); - $order_details['total_price_tax_incl'] = (float)$products['total_wt']; - $order_details['total_price_tax_excl'] = (float)$products['total_price']; - $order_details['unit_price_tax_incl'] = (float)$products['product_price_wt']; - $order_details['unit_price_tax_excl'] = (float)$products['product_price']; - foreach (array_keys($order_details) as $k) - if (!in_array($k, $col_order_detail)) - unset($order_details[$k]); - else - { - if (in_array($order_details[$k], array('product_price', 'reduction_percent', 'reduction_amount', 'group_reduction', 'product_quantity_discount', 'tax_rate', 'ecotax', 'ecotax_tax_rate'))) - $order_details[$k] = (float)$order_details[$k]; + $sum_total_products = 0; + $sum_tax_amount = 0; + $default_group_id = mo_getCustomerDefaultGroup((int)$order['id_customer']); + $price_display_method = mo_getPriceDisplayMethod((int)$default_group_id); + $order_details_list = Db::getInstance()->query(' + SELECT od.* + FROM `'._DB_PREFIX_.'order_detail` od + WHERE od.`id_order` = '.(int)$order['id_order']); + while ($order_details = Db::getInstance()->nextRow($order_details_list)) + { + $values_order_detail = array(); + $values_order = array(); + $col_order_detail = array(); + // we don't want to erase order_details data in order to create the insert query + $products = mo_setProductPrices($order_details, $price_display_method); + $tax_rate = 1 + ((float)$products['tax_rate'] / 100); + $reduction_amount_tax_incl = (float)$products['reduction_amount']; + + // cart::getTaxesAverageUsed equivalent + $sum_total_products += $products['total_price']; + + $sum_tax_amount += $products['total_wt'] - $products['total_price']; + + $order_details['reduction_amount_tax_incl'] = $reduction_amount_tax_incl; + $order_details['reduction_amount_tax_excl'] = (float)mo_ps_round($reduction_amount_tax_incl / $tax_rate); + $order_details['total_price_tax_incl'] = (float)$products['total_wt']; + $order_details['total_price_tax_excl'] = (float)$products['total_price']; + $order_details['unit_price_tax_incl'] = (float)$products['product_price_wt']; + $order_details['unit_price_tax_excl'] = (float)$products['product_price']; + foreach (array_keys($order_details) as $k) + if (!in_array($k, $col_order_detail)) + unset($order_details[$k]); else - $order_details[$k] = Db::getInstance()->escape($order_details[$k]); + { + if (in_array($order_details[$k], array('product_price', 'reduction_percent', 'reduction_amount', 'group_reduction', 'product_quantity_discount', 'tax_rate', 'ecotax', 'ecotax_tax_rate'))) + $order_details[$k] = (float)$order_details[$k]; + else + $order_details[$k] = Db::getInstance()->escape($order_details[$k]); + } + if (count($order_details)) + $values_order_detail[] = '(\''.implode('\', \'', $order_details).'\')'; + unset($order_details); + } + + $average_tax_used = 1; + if ($sum_total_products > 0) + $average_tax_used += $sum_tax_amount / $sum_total_products; + $average_tax_used = round($average_tax_used, 4); + $carrier_tax_rate = 1; + if (isset($order['carrier_tax_rate'])) + $carrier_tax_rate + ((float)$order['carrier_tax_rate'] / 100); + + $total_discount_tax_excl = $order['total_discounts'] / $average_tax_used; + $order['total_discounts_tax_incl'] = (float)$order['total_discounts']; + $order['total_discounts_tax_excl'] = (float)$total_discount_tax_excl; + + $order['total_shipping_tax_incl'] = (float)$order['total_shipping']; + $order['total_shipping_tax_excl'] = (float)($order['total_shipping'] / $carrier_tax_rate); + $shipping_taxes = $order['total_shipping_tax_incl'] - $order['total_shipping_tax_excl']; + + $order['total_wrapping_tax_incl'] = (float)$order['total_wrapping']; + $order['total_wrapping_tax_excl'] = ((float)$order['total_wrapping'] / $wrapping_tax_rate); + $wrapping_taxes = $order['total_wrapping_tax_incl'] - $order['total_wrapping_tax_excl']; + + $product_taxes = $order['total_products_wt'] - $order['total_products']; + $order['total_paid_tax_incl'] = (float)$order['total_paid']; + $order['total_paid_tax_excl'] = (float)$order['total_paid'] - $shipping_taxes - $wrapping_taxes - $product_taxes; + // protect text and varchar fields + $order['gift_message'] = Db::getInstance()->escape($order['gift_message']); + $order['payment'] = Db::getInstance()->escape($order['payment']); + $order['module'] = Db::getInstance()->escape($order['module']); + + $values_order[] = '(\''.implode('\', \'', $order).'\')'; + + unset($order); + $cpt++; + + // limit to $cpt + if ($cpt >= $flush_limit) + { + $cpt = 0; + if (isset($values_order_detail) && count($values_order_detail) && !Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) + { + $res = false; + $array_errors[] = '[insert order detail 1] - '.Db::getInstance()->getMsgError(); } - if (count($order_details)) - $values_order_detail[] = '(\''.implode('\', \'', $order_details).'\')'; - } - - $average_tax_used = 1; - if ($sum_total_products > 0) - $average_tax_used += $sum_tax_amount / $sum_total_products; - $average_tax_used = round($average_tax_used, 4); - $carrier_tax_rate = 1; - if (isset($order['carrier_tax_rate'])) - $carrier_tax_rate + ((float)$order['carrier_tax_rate'] / 100); - - $total_discount_tax_excl = $order['total_discounts'] / $average_tax_used; - $order['total_discounts_tax_incl'] = (float)$order['total_discounts']; - $order['total_discounts_tax_excl'] = (float)$total_discount_tax_excl; - - $order['total_shipping_tax_incl'] = (float)$order['total_shipping']; - $order['total_shipping_tax_excl'] = (float)($order['total_shipping'] / $carrier_tax_rate); - $shipping_taxes = $order['total_shipping_tax_incl'] - $order['total_shipping_tax_excl']; - - $order['total_wrapping_tax_incl'] = (float)$order['total_wrapping']; - $order['total_wrapping_tax_excl'] = ((float)$order['total_wrapping'] / $wrapping_tax_rate); - $wrapping_taxes = $order['total_wrapping_tax_incl'] - $order['total_wrapping_tax_excl']; - - $product_taxes = $order['total_products_wt'] - $order['total_products']; - $order['total_paid_tax_incl'] = (float)$order['total_paid']; - $order['total_paid_tax_excl'] = (float)$order['total_paid'] - $shipping_taxes - $wrapping_taxes - $product_taxes; - // protect text and varchar fields - $order['gift_message'] = Db::getInstance()->escape($order['gift_message']); - $order['payment'] = Db::getInstance()->escape($order['payment']); - $order['module'] = Db::getInstance()->escape($order['module']); - - $values_order[] = '(\''.implode('\', \'', $order).'\')'; - - unset($order); - $cpt++; - - if ($cpt >= $flush_limit) - { - $cpt = 0; - - if (count($values_order_detail) && !Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) - { - $res = false; - $array_errors[] = '[insert order detail 1] - '.Db::getInstance()->getMsgError(); + if (isset($values_order) && count($values_order) && !Db::getInstance()->execute($insert_order. implode(',', $values_order))) + { + $res = false; + $array_errors[] = '[insert order 2] - '.Db::getInstance()->getMsgError(); + } + if (isset($values_order)) + unset($values_order); + if (isset($values_order_detail)) + unset($values_order_detail); } - if (count($values_order) && !Db::getInstance()->execute($insert_order. implode(',', $values_order))) - { - $res = false; - $array_errors[] = '[insert order 2] - '.Db::getInstance()->getMsgError(); - } - $values_order = array(); - $values_order_detail = array(); } } - if (count($values_order_detail) && !Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) + if (isset($values_order_detail) && count($values_order_detail) && !Db::getInstance()->execute($insert_order_detail. implode(',', $values_order_detail))) { $res = false; $array_errors[] = '[insert order detail 3] - '.Db::getInstance()->getMsgError(); } - if (count($values_order) && !Db::getInstance()->execute($insert_order. implode(',', $values_order))) + if (isset($values_order) && count($values_order) && !Db::getInstance()->execute($insert_order. implode(',', $values_order))) { $res = false; $array_errors[] = '[insert order 4] - '.Db::getInstance()->getMsgError(); } - if (!mo_renameTables()) { $res = false; @@ -192,7 +197,6 @@ function migrate_orders() return array('error' => 1, 'msg' => count($array_errors).' error(s) :
    '.implode('
    ', $array_errors)); } - /** * mo_ps_round is a simplification of Tools::ps_round: * - round is always 2 diff --git a/install-dev/upgrade/php/update_order_messages.php b/install-dev/upgrade/php/update_order_messages.php index 29d4cc07e..a9dacc791 100644 --- a/install-dev/upgrade/php/update_order_messages.php +++ b/install-dev/upgrade/php/update_order_messages.php @@ -35,6 +35,7 @@ function update_order_messages() for($i = 0; $i < $nb_loop; $i++) { $sql = 'SELECT id_message, message FROM `'._DB_PREFIX_.'message` WHERE message REGEXP \''.pSQL($pattern, true).'\' LIMIT '.(int)$start.', '.(int)$step; + $start = intval(($i+1) * $step); if ($messages = Db::getInstance()->query($sql)) while ($message = Db::getInstance()->nextRow($messages)) { @@ -52,6 +53,7 @@ function update_order_messages() for($i = 0; $i < $nb_loop; $i++) { $sql = 'SELECT id_customer_message, message FROM `'._DB_PREFIX_.'customer_message` WHERE message REGEXP \''.pSQL($pattern, true).'\' LIMIT '.(int)$start.', '.(int)$step; + $start = intval(($i+1) * $step); if ($messages = Db::getInstance()->query($sql)) while ($message = Db::getInstance()->nextRow($messages)) { From 2a3192d98c29a3a09d141a9cbbbcc41e1d6d9a02 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Sun, 3 Nov 2013 14:55:25 +0100 Subject: [PATCH 216/247] [-] IN : Refacto for update_customer_default_group bad logical --- .../upgrade/php/update_customer_default_group.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/install-dev/upgrade/php/update_customer_default_group.php b/install-dev/upgrade/php/update_customer_default_group.php index 253667c3d..75b31562d 100644 --- a/install-dev/upgrade/php/update_customer_default_group.php +++ b/install-dev/upgrade/php/update_customer_default_group.php @@ -53,20 +53,21 @@ function update_customer_default_group() FROM `'._DB_PREFIX_.'configuration` WHERE `name` IN (\'PS_UNIDENTIFIED_GROUP\', \'PS_GUEST_GROUP\')'); - $result = true; + if (count($carriers) && is_array($carriers) && count($groups) && is_array($groups)) foreach ($carriers as $carrier) foreach ($groups as $group) - $result &= (bool)Db::getInstance()->execute(' + Db::getInstance()->execute(' INSERT IGNORE INTO `'._DB_PREFIX_.'carrier_group` VALUES ('.(int)$carrier['id_carrier'].', '.(int)$group['id_group'].')'); - - if($result && file_exists($filename) && is_writable($filename)) + + $result = false; + if(file_exists($filename) && is_writable($filename)) { - $result &= (bool)file_put_contents($filename, $content); + $result = (bool)file_put_contents($filename, $content); if($result && file_exists($filename_old)) { - $result &= (bool)unlink($filename_old); + unlink($filename_old); chmod($filename, 0664); } } From c7323c2bfeb019074a408a68e0b58f30cb36de01 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Sun, 3 Nov 2013 22:59:04 +0100 Subject: [PATCH 217/247] [-] CORE : Fix bug #PSCFV-10901 warnings on htmlentities --- classes/Tools.php | 10 ++++++++-- modules/blocksearch/blocksearch-top.tpl | 4 ++-- modules/blocksearch/blocksearch.tpl | 2 +- themes/default/modules/blocksearch/blocksearch.tpl | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/classes/Tools.php b/classes/Tools.php index 44eb80ce3..1ee27abca 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -672,14 +672,20 @@ class ToolsCore public static function htmlentitiesUTF8($string, $type = ENT_QUOTES) { if (is_array($string)) - return array_map(array('Tools', 'htmlentitiesUTF8'), $string); + { + $string = array_map(array('Tools', 'htmlentitiesUTF8'), $string); + return (string)array_shift($string); + } return htmlentities((string)$string, $type, 'utf-8'); } public static function htmlentitiesDecodeUTF8($string) { if (is_array($string)) - return array_map(array('Tools', 'htmlentitiesDecodeUTF8'), $string); + { + $string = array_map(array('Tools', 'htmlentitiesDecodeUTF8'), $string); + return (string)array_shift($string); + } return html_entity_decode((string)$string, ENT_QUOTES, 'utf-8'); } diff --git a/modules/blocksearch/blocksearch-top.tpl b/modules/blocksearch/blocksearch-top.tpl index 5a5918662..83b247f89 100644 --- a/modules/blocksearch/blocksearch-top.tpl +++ b/modules/blocksearch/blocksearch-top.tpl @@ -29,7 +29,7 @@ - +
    {else} @@ -41,7 +41,7 @@ - +

    diff --git a/modules/blocksearch/blocksearch.tpl b/modules/blocksearch/blocksearch.tpl index d4dac74b7..ce9b45f74 100644 --- a/modules/blocksearch/blocksearch.tpl +++ b/modules/blocksearch/blocksearch.tpl @@ -32,7 +32,7 @@ - +

    diff --git a/themes/default/modules/blocksearch/blocksearch.tpl b/themes/default/modules/blocksearch/blocksearch.tpl index 591644331..92d286177 100644 --- a/themes/default/modules/blocksearch/blocksearch.tpl +++ b/themes/default/modules/blocksearch/blocksearch.tpl @@ -32,7 +32,7 @@ - +

    From d49c4cf62e1919c66dc46a4161cb8045153092c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Mon, 4 Nov 2013 09:38:12 +0100 Subject: [PATCH 218/247] [-] BO: Fix from name when replying to customer threads --- controllers/admin/AdminCustomerThreadsController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/controllers/admin/AdminCustomerThreadsController.php b/controllers/admin/AdminCustomerThreadsController.php index da3f4b15c..cc455ef8b 100644 --- a/controllers/admin/AdminCustomerThreadsController.php +++ b/controllers/admin/AdminCustomerThreadsController.php @@ -404,7 +404,7 @@ class AdminCustomerThreadsControllerCore extends AdminController $contact = new Contact((int)$ct->id_contact, (int)$ct->id_lang); if (Validate::isLoadedObject($contact)) { - $from_name = $contact->name[(int)$ct->id_lang]; + $from_name = $contact->name; $from_email = $contact->email; } else @@ -412,6 +412,7 @@ class AdminCustomerThreadsControllerCore extends AdminController $from_name = null; $from_email = null; } + if (Mail::Send( (int)$ct->id_lang, 'reply_msg', From e03a86ad05af78522c65bf08129cebd1b8e6cdb2 Mon Sep 17 00:00:00 2001 From: Vincent Augagneur Date: Mon, 4 Nov 2013 10:01:29 +0100 Subject: [PATCH 219/247] //homeslider new use bootstrap design --- modules/homeslider/homeslider.php | 262 +++++++++++++++++- modules/homeslider/views/index.php | 35 +++ .../admin/_configure/helpers/form/form.tpl | 78 ++++++ .../homeslider/views/templates/hook/index.php | 35 +++ .../homeslider/views/templates/hook/list.tpl | 50 ++++ modules/homeslider/views/templates/index.php | 35 +++ 6 files changed, 490 insertions(+), 5 deletions(-) create mode 100644 modules/homeslider/views/index.php create mode 100644 modules/homeslider/views/templates/admin/_configure/helpers/form/form.tpl create mode 100644 modules/homeslider/views/templates/hook/index.php create mode 100644 modules/homeslider/views/templates/hook/list.tpl create mode 100644 modules/homeslider/views/templates/index.php diff --git a/modules/homeslider/homeslider.php b/modules/homeslider/homeslider.php index 3865e0531..7824af939 100644 --- a/modules/homeslider/homeslider.php +++ b/modules/homeslider/homeslider.php @@ -183,7 +183,6 @@ class HomeSlider extends Module public function getContent() { $this->_html .= $this->headerHTML(); - $this->_html .= '

    '.$this->displayName.'.

    '; /* Validate & process */ if (Tools::isSubmit('submitSlide') || Tools::isSubmit('delete_id_slide') || @@ -191,14 +190,24 @@ class HomeSlider extends Module Tools::isSubmit('changeStatus')) { if ($this->_postValidation()) + { $this->_postProcess(); - $this->_displayForm(); + $this->_html .= $this->renderForm(); + $this->_html .= $this->renderList(); + } + else + $this->_html .= $this->renderAddForm(); + + } elseif (Tools::isSubmit('addSlide') || (Tools::isSubmit('id_slide') && $this->slideExists((int)Tools::getValue('id_slide')))) - $this->_displayAddForm(); + $this->_html .= $this->renderAddForm(); else - $this->_displayForm(); - + { + $this->_html .= $this->renderForm(); + $this->_html .= $this->renderList(); + } + return $this->_html; } @@ -456,6 +465,8 @@ class HomeSlider extends Module /* If edit : checks id_slide */ if (Tools::isSubmit('id_slide')) { + + //d(var_dump(Tools::getValue('id_slide'))); if (!Validate::isInt(Tools::getValue('id_slide')) && !$this->slideExists(Tools::getValue('id_slide'))) $errors[] = $this->l('Invalid id_slide'); } @@ -774,4 +785,245 @@ class HomeSlider extends Module $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req); return ($row); } + + public function renderList() + { + $slides = $this->getSlides(); + foreach ($slides as $key => $slide) + $slides[$key]['status'] = $this->displayStatus($slide['id_slide'], $slide['active']); + + $this->context->smarty->assign(array( + 'link' => $this->context->link, + 'slides' => $slides, + )); + + return $this->display(__FILE__, 'list.tpl'); + } + + public function renderAddForm() + { + $fields_form = array( + 'form' => array( + 'legend' => array( + 'title' => $this->l('Slide informations'), + 'icon' => 'icon-cogs' + ), + 'input' => array( + array( + 'type' => 'file_lang', + 'label' => $this->l('Select a file:'), + 'name' => 'image', + 'lang' => true, + ), + array( + 'type' => 'text', + 'label' => $this->l('Title:'), + 'name' => 'title', + 'lang' => true, + ), + array( + 'type' => 'text', + 'label' => $this->l('URL:'), + 'name' => 'url', + 'lang' => true, + ), + array( + 'type' => 'text', + 'label' => $this->l('Legend:'), + 'name' => 'legend', + 'lang' => true, + ), + array( + 'type' => 'textarea', + 'label' => $this->l('Description:'), + 'name' => 'description', + 'lang' => true, + ), + array( + 'type' => 'switch', + 'label' => $this->l('Active'), + 'name' => 'active_slide', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Yes') + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('No') + ) + ), + ), + ), + 'submit' => array( + 'title' => $this->l('Save'), + 'class' => 'btn btn-default') + ), + ); + + if (Tools::isSubmit('id_slide') && $this->slideExists((int)Tools::getValue('id_slide'))) + { + $slide = new HomeSlide((int)Tools::getValue('id_slide')); + $fields_form['form']['input'][] = array('type' => 'hidden', 'name' => 'id_slide'); + + $has_picture = true; + + foreach (Language::getLanguages(false) as $lang) + if (!isset($slide->image[$lang['id_lang']])) + $has_picture &= false; + + if ($has_picture) + $fields_form['form']['input'][] = array('type' => 'hidden', 'name' => 'has_picture'); + } + + + $helper = new HelperForm(); + $helper->show_toolbar = false; + $helper->table = $this->table; + $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT')); + $helper->default_form_language = $lang->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; + $this->fields_form = array(); + $helper->module = $this; + $helper->identifier = $this->identifier; + $helper->submit_action = 'submitSlide'; + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $language = new Language((int)Configuration::get('PS_LANG_DEFAULT')); + $helper->tpl_vars = array( + 'base_url' => $this->context->shop->getBaseURL(), + 'language' => array( + 'id_lang' => $language->id, + 'iso_code' => $language->iso_code + ), + 'fields_value' => $this->getAddFieldsValues(), + 'languages' => $this->context->controller->getLanguages(), + 'id_language' => $this->context->language->id + ); + + $helper->override_folder = '/'; + + return $helper->generateForm(array($fields_form)); + } + + public function renderForm() + { + $fields_form = array( + 'form' => array( + 'legend' => array( + 'title' => $this->l('Settings'), + 'icon' => 'icon-cogs' + ), + 'input' => array( + array( + 'type' => 'text', + 'label' => $this->l('Height:'), + 'name' => 'HOMESLIDER_HEIGHT', + 'suffix' => 'px' + ), + array( + 'type' => 'text', + 'label' => $this->l('Width:'), + 'name' => 'HOMESLIDER_WIDTH', + 'suffix' => 'px' + ), + array( + 'type' => 'text', + 'label' => $this->l('Speed:'), + 'name' => 'HOMESLIDER_SPEED', + 'suffix' => 'ms' + ), + array( + 'type' => 'text', + 'label' => $this->l('Pause:'), + 'name' => 'HOMESLIDER_PAUSE', + 'suffix' => 'ms' + ), + array( + 'type' => 'switch', + 'label' => $this->l('Loop:'), + 'name' => 'HOMESLIDER_LOOP', + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled') + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled') + ) + ), + ) + ), + 'submit' => array( + 'title' => $this->l('Save'), + 'class' => 'btn btn-default') + ), + ); + + $helper = new HelperForm(); + $helper->show_toolbar = false; + $helper->table = $this->table; + $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT')); + $helper->default_form_language = $lang->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; + $this->fields_form = array(); + + $helper->identifier = $this->identifier; + $helper->submit_action = 'submitSlider'; + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $helper->tpl_vars = array( + 'fields_value' => $this->getConfigFieldsValues(), + 'languages' => $this->context->controller->getLanguages(), + 'id_language' => $this->context->language->id + ); + + return $helper->generateForm(array($fields_form)); + } + + public function getConfigFieldsValues() + { + return array( + 'HOMESLIDER_HEIGHT' => Tools::getValue('HOMESLIDER_HEIGHT', Configuration::get('HOMESLIDER_HEIGHT')), + 'HOMESLIDER_WIDTH' => Tools::getValue('HOMESLIDER_WIDTH', Configuration::get('HOMESLIDER_WIDTH')), + 'HOMESLIDER_SPEED' => Tools::getValue('HOMESLIDER_SPEED', Configuration::get('HOMESLIDER_SPEED')), + 'HOMESLIDER_PAUSE' => Tools::getValue('HOMESLIDER_PAUSE', Configuration::get('HOMESLIDER_PAUSE')), + 'HOMESLIDER_LOOP' => Tools::getValue('HOMESLIDER_LOOP', Configuration::get('HOMESLIDER_LOOP')), + ); + } + + public function getAddFieldsValues() + { + $fields = array(); + + if (Tools::isSubmit('id_slide') && $this->slideExists((int)Tools::getValue('id_slide'))) + { + $slide = new HomeSlide((int)Tools::getValue('id_slide')); + $fields['id_slide'] = (int)Tools::getValue('id_slide', $slide->id); + } + else + $slide = new HomeSlide(); + + $fields['active_slide'] = Tools::getValue('active_slide', $slide->active); + $fields['has_picture'] = true; + + $languages = Language::getLanguages(false); + + foreach ($languages as $lang) + { + $fields['image'][$lang['id_lang']] = Tools::getValue('image_'.(int)$lang['id_lang']); + $fields['title'][$lang['id_lang']] = Tools::getValue('title_'.(int)$lang['id_lang'], $slide->title[$lang['id_lang']]); + $fields['url'][$lang['id_lang']] = Tools::getValue('url_'.(int)$lang['id_lang'], $slide->url[$lang['id_lang']]); + $fields['legend'][$lang['id_lang']] = Tools::getValue('legend_'.(int)$lang['id_lang'], $slide->legend[$lang['id_lang']]); + $fields['description'][$lang['id_lang']] = Tools::getValue('description_'.(int)$lang['id_lang'], $slide->description[$lang['id_lang']]); + } + + return $fields; + } } diff --git a/modules/homeslider/views/index.php b/modules/homeslider/views/index.php new file mode 100644 index 000000000..fd6bae0d3 --- /dev/null +++ b/modules/homeslider/views/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../../../'); +exit; \ No newline at end of file diff --git a/modules/homeslider/views/templates/admin/_configure/helpers/form/form.tpl b/modules/homeslider/views/templates/admin/_configure/helpers/form/form.tpl new file mode 100644 index 000000000..058d07867 --- /dev/null +++ b/modules/homeslider/views/templates/admin/_configure/helpers/form/form.tpl @@ -0,0 +1,78 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +{extends file="helpers/form/form.tpl"} +{block name="field"} + {if $input.type == 'file_lang'} +
    + {foreach from=$languages item=language} + {if $languages|count > 1} + + {/if} + + {/foreach} +
    + {/if} + {$smarty.block.parent} +{/block} \ No newline at end of file diff --git a/modules/homeslider/views/templates/hook/index.php b/modules/homeslider/views/templates/hook/index.php new file mode 100644 index 000000000..c7a193905 --- /dev/null +++ b/modules/homeslider/views/templates/hook/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../../../../../'); +exit; \ No newline at end of file diff --git a/modules/homeslider/views/templates/hook/list.tpl b/modules/homeslider/views/templates/hook/list.tpl new file mode 100644 index 000000000..ba32d9f5a --- /dev/null +++ b/modules/homeslider/views/templates/hook/list.tpl @@ -0,0 +1,50 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +
    +
    + {l s='Slides list'} + + + + + +
    + +
    +
      + {foreach from=$slides item=slide} +
    • + #{$slide.id_slide} {$slide.title} +

      + {$slide.status} + {l s='Edit'} + {l s='Delete'} +

      +
    • + {/foreach} +
    +
    +
    \ No newline at end of file diff --git a/modules/homeslider/views/templates/index.php b/modules/homeslider/views/templates/index.php new file mode 100644 index 000000000..3f4b16e7e --- /dev/null +++ b/modules/homeslider/views/templates/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../../../../'); +exit; \ No newline at end of file From 3de663f9a19bc170b73aeba3c4d184e0a0cbd3bd Mon Sep 17 00:00:00 2001 From: Vincent Augagneur Date: Mon, 4 Nov 2013 10:20:17 +0100 Subject: [PATCH 220/247] //missing files for module followup --- modules/followup/views/index.php | 35 +++++++++ .../admin/_configure/helpers/form/form.tpl | 32 +++++++++ .../followup/views/templates/hook/index.php | 35 +++++++++ .../followup/views/templates/hook/stats.tpl | 71 +++++++++++++++++++ modules/followup/views/templates/index.php | 35 +++++++++ 5 files changed, 208 insertions(+) create mode 100644 modules/followup/views/index.php create mode 100644 modules/followup/views/templates/admin/_configure/helpers/form/form.tpl create mode 100644 modules/followup/views/templates/hook/index.php create mode 100644 modules/followup/views/templates/hook/stats.tpl create mode 100644 modules/followup/views/templates/index.php diff --git a/modules/followup/views/index.php b/modules/followup/views/index.php new file mode 100644 index 000000000..3f6561f72 --- /dev/null +++ b/modules/followup/views/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/followup/views/templates/admin/_configure/helpers/form/form.tpl b/modules/followup/views/templates/admin/_configure/helpers/form/form.tpl new file mode 100644 index 000000000..37c2b63fc --- /dev/null +++ b/modules/followup/views/templates/admin/_configure/helpers/form/form.tpl @@ -0,0 +1,32 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +{extends file="helpers/form/form.tpl"} +{block name="field"} + {if $input.type == 'desc'} +
    {$input.text}
    + {/if} + {$smarty.block.parent} +{/block} \ No newline at end of file diff --git a/modules/followup/views/templates/hook/index.php b/modules/followup/views/templates/hook/index.php new file mode 100644 index 000000000..3f6561f72 --- /dev/null +++ b/modules/followup/views/templates/hook/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/followup/views/templates/hook/stats.tpl b/modules/followup/views/templates/hook/stats.tpl new file mode 100644 index 000000000..a77f70752 --- /dev/null +++ b/modules/followup/views/templates/hook/stats.tpl @@ -0,0 +1,71 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +
    +

    {l s="Statistics"}

    +

    {l s="Detailed statistics for last 30 days:"}

    +

    + {l s="S = Number of sent e-mails"}
    + {l s="U = Number of discounts used (valid orders only)"}
    + {l s="% = Conversion rate"} +

    +
    + + + + + + + + + + + + + + + + + + + + + + {foreach from=$stats_array key='date' item='stats'} + + + {foreach from=$stats key='key' item='val'} + + + + {/foreach} + + {foreachelse} + + + + {/foreach} +
    {l s="Date"}{l s="Cancelled carts"}{l s="Re-order"}{l s="Best cust."}{l s="Bad cust."}
    {l s="S"}{l s="U"}%{l s="S"}{l s="U"}%{l s="S"}{l s="U"}%{l s="S"}{l s="U"}%
    {$date}{$val.nb}{$val.nb_used}{$val.rate}
    {l s="No statistics at this time."}
    +
    \ No newline at end of file diff --git a/modules/followup/views/templates/index.php b/modules/followup/views/templates/index.php new file mode 100644 index 000000000..3f6561f72 --- /dev/null +++ b/modules/followup/views/templates/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file From 02367e53960370722bea6d9c74d05a00bb33b14e Mon Sep 17 00:00:00 2001 From: Vincent Augagneur Date: Mon, 4 Nov 2013 10:42:37 +0100 Subject: [PATCH 221/247] //missing file for blockwishlist module --- .../admin/_configure/helpers/index.php | 35 ++++++++++++++++++ .../admin/_configure/helpers/list/index.php | 35 ++++++++++++++++++ .../_configure/helpers/list/list_content.tpl | 37 +++++++++++++++++++ .../templates/admin/_configure/index.php | 35 ++++++++++++++++++ .../views/templates/admin/index.php | 35 ++++++++++++++++++ 5 files changed, 177 insertions(+) create mode 100644 modules/blockwishlist/views/templates/admin/_configure/helpers/index.php create mode 100644 modules/blockwishlist/views/templates/admin/_configure/helpers/list/index.php create mode 100644 modules/blockwishlist/views/templates/admin/_configure/helpers/list/list_content.tpl create mode 100644 modules/blockwishlist/views/templates/admin/_configure/index.php create mode 100644 modules/blockwishlist/views/templates/admin/index.php diff --git a/modules/blockwishlist/views/templates/admin/_configure/helpers/index.php b/modules/blockwishlist/views/templates/admin/_configure/helpers/index.php new file mode 100644 index 000000000..3f6561f72 --- /dev/null +++ b/modules/blockwishlist/views/templates/admin/_configure/helpers/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/blockwishlist/views/templates/admin/_configure/helpers/list/index.php b/modules/blockwishlist/views/templates/admin/_configure/helpers/list/index.php new file mode 100644 index 000000000..3f6561f72 --- /dev/null +++ b/modules/blockwishlist/views/templates/admin/_configure/helpers/list/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/blockwishlist/views/templates/admin/_configure/helpers/list/list_content.tpl b/modules/blockwishlist/views/templates/admin/_configure/helpers/list/list_content.tpl new file mode 100644 index 000000000..ab842ec66 --- /dev/null +++ b/modules/blockwishlist/views/templates/admin/_configure/helpers/list/list_content.tpl @@ -0,0 +1,37 @@ +{* +* 2007-2013 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +{extends file="helpers/list/list_content.tpl"} + +{block name="td_content"} + {if isset($params.type) && $params.type == 'priority'} + {$priority[$tr.$key]} + {elseif isset($params.type) && $params.type == 'image'} + + {else} + {$smarty.block.parent} + {/if} + +{/block} diff --git a/modules/blockwishlist/views/templates/admin/_configure/index.php b/modules/blockwishlist/views/templates/admin/_configure/index.php new file mode 100644 index 000000000..3f6561f72 --- /dev/null +++ b/modules/blockwishlist/views/templates/admin/_configure/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/blockwishlist/views/templates/admin/index.php b/modules/blockwishlist/views/templates/admin/index.php new file mode 100644 index 000000000..3f6561f72 --- /dev/null +++ b/modules/blockwishlist/views/templates/admin/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2013 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file From cfeeda7d9bd54e94b2b7c1efc2ea3607e8efb347 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 4 Nov 2013 11:00:50 +0100 Subject: [PATCH 222/247] // Assigned compared products to smarty --- classes/controller/AdminController.php | 2 +- classes/controller/FrontController.php | 5 +++++ controllers/front/CompareController.php | 7 +++---- modules/blocklayered/blocklayered.php | 1 - 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 96a52cf09..47da598dc 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -1543,7 +1543,7 @@ class AdminControllerCore extends Controller 'link' => $this->context->link, 'shop_name' => Configuration::get('PS_SHOP_NAME'), 'base_url' => $this->context->shop->getBaseURL(), - 'tab' => $tab, // Deprecated, this tab is declared in the foreach, so it's the last tab in the foreach + 'tab' => isset($tab) ? $tab : null, // Deprecated, this tab is declared in the foreach, so it's the last tab in the foreach 'current_parent_id' => (int)Tab::getCurrentParentId(), 'tabs' => $tabs, 'install_dir_exists' => file_exists(_PS_ADMIN_DIR_.'/../install'), diff --git a/classes/controller/FrontController.php b/classes/controller/FrontController.php index 8626445bb..56c8937eb 100644 --- a/classes/controller/FrontController.php +++ b/classes/controller/FrontController.php @@ -304,6 +304,10 @@ class FrontControllerCore extends Controller foreach ($languages as $lang) $meta_language[] = $lang['iso_code']; + $compared_products = array(); + if (Configuration::get('PS_COMPARATOR_MAX_ITEM') && isset($this->context->cookie->id_compare)) + $compared_products = CompareProduct::getCompareProducts($this->context->cookie->id_compare); + $this->context->smarty->assign(array( // Usefull for layout.tpl 'mobile_device' => $this->context->getMobileDevice(), @@ -342,6 +346,7 @@ class FrontControllerCore extends Controller 'PS_STOCK_MANAGEMENT' => Configuration::get('PS_STOCK_MANAGEMENT'), 'quick_view' => Configuration::get('PS_QUICK_VIEW'), 'shop_phone' => Configuration::get('PS_SHOP_PHONE'), + 'compared_products' => is_array($compared_products) ? $compared_products : array() )); // Add the tpl files directory for mobile diff --git a/controllers/front/CompareController.php b/controllers/front/CompareController.php index f98c63e0b..347635824 100644 --- a/controllers/front/CompareController.php +++ b/controllers/front/CompareController.php @@ -84,17 +84,16 @@ class CompareControllerCore extends FrontController $hasProduct = false; if (!Configuration::get('PS_COMPARATOR_MAX_ITEM')) - return Tools::redirect('index.php?controller=404'); + return Tools::redirect('index.php?controller=404'); + $ids = null; if (($product_list = Tools::getValue('compare_product_list')) && ($postProducts = (isset($product_list) ? rtrim($product_list, '|') : ''))) $ids = array_unique(explode('|', $postProducts)); - else if (isset($this->context->cookie->id_compare)) + elseif (isset($this->context->cookie->id_compare)) { $ids = CompareProduct::getCompareProducts($this->context->cookie->id_compare); Tools::redirect($this->context->link->getPageLink('products-comparison', null, $this->context->language->id, array('compare_product_list' => implode('|', $ids)))); } - else - $ids = null; if ($ids) { diff --git a/modules/blocklayered/blocklayered.php b/modules/blocklayered/blocklayered.php index c4dc2e2c5..d7083d218 100644 --- a/modules/blocklayered/blocklayered.php +++ b/modules/blocklayered/blocklayered.php @@ -3167,7 +3167,6 @@ class BlockLayered extends Module $smarty->assign($filter_block); $smarty->assign('hide_0_values', Configuration::get('PS_LAYERED_HIDE_0_VALUES')); - return $this->display(__FILE__, 'blocklayered.tpl'); } else From d57192080648f52b9dc9f2d6faf3d5cd26d88a35 Mon Sep 17 00:00:00 2001 From: Vincent Augagneur Date: Mon, 4 Nov 2013 11:09:53 +0100 Subject: [PATCH 223/247] //small fix --- js/admin-dashboard.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/admin-dashboard.js b/js/admin-dashboard.js index c84775139..f708d7b60 100644 --- a/js/admin-dashboard.js +++ b/js/admin-dashboard.js @@ -36,6 +36,7 @@ $(document).ready( function () { refreshDashboard(false, false); getBlogRss(); bindSubmitDashConfig(); + bindCancelDashConfig(); }); From 0451ca5c73e6d4c76f6514595768e89d8d753459 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 4 Nov 2013 12:24:55 +0100 Subject: [PATCH 224/247] // Added Addons search --- .../controllers/search/helpers/view/view.tpl | 23 +++++++++++++++++++ controllers/admin/AdminSearchController.php | 12 +++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl index 0ab48c509..c5be8b1b0 100644 --- a/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl +++ b/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl @@ -145,4 +145,27 @@ $(function() { {$orders}
    {/if} + + {if isset($addons) && $addons} +
    +

    + {if $addons|@count == 1} + {l s='1 addon'} + {else} + {l s='%d addons' sprintf=$addons|@count} + {/if} +

    + + + {foreach $addons key=key item=addon} + + + + + {/foreach} + +
    {$addon.title|escape:'htmlall':'UTF-8'}{$addon.description|escape:'htmlall':'UTF-8'}
    +
    + {/if} + {/if} diff --git a/controllers/admin/AdminSearchController.php b/controllers/admin/AdminSearchController.php index 9a70c88cc..9cd2d9899 100644 --- a/controllers/admin/AdminSearchController.php +++ b/controllers/admin/AdminSearchController.php @@ -26,7 +26,6 @@ class AdminSearchControllerCore extends AdminController { - public function __construct() { $this->bootstrap = true; @@ -197,6 +196,15 @@ class AdminSearchControllerCore extends AdminController $module->linkto = 'index.php?tab=AdminModules&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor='.ucfirst($module->name).'&token='.Tools::getAdminTokenLite('AdminModules'); $this->_list['modules'][] = $module; } + + $vars = http_build_query(array( + 'version' => _PS_VERSION_, + 'iso_lang' => Tools::strtolower(Context::getContext()->language->iso_code), + 'iso_code' => Tools::strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))), + 'search_query' => $this->query + )); + if (($json_content = Tools::file_get_contents('https://api.addons.prestashop.com/search.php?'.$vars)) != false) + $this->_list['addons'] = Tools::jsonDecode($json_content, true); } /** @@ -408,6 +416,8 @@ class AdminSearchControllerCore extends AdminController if (isset($this->_list['modules']) && count($this->_list['modules'])) $this->tpl_view_vars['modules'] = $this->_list['modules']; + if (isset($this->_list['addons']) && count($this->_list['addons'])) + $this->tpl_view_vars['addons'] = $this->_list['addons']; return parent::renderView(); } From 178cd7362d02b14d389691a44e9e73418e562edb Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 4 Nov 2013 13:57:27 +0100 Subject: [PATCH 225/247] // admin search code cleaning --- .../controllers/search/helpers/view/view.tpl | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl b/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl index c5be8b1b0..e79df643a 100644 --- a/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl +++ b/admin-dev/themes/default/template/controllers/search/helpers/view/view.tpl @@ -54,10 +54,8 @@ $(function() { {foreach $features key=key item=feature} {foreach $feature key=k item=val name=feature_list} - {if $smarty.foreach.feature_list.first}{$key}{/if} - - {$val.value} - + {$key}{/if} + {$val.value} {/foreach} {/foreach} @@ -79,7 +77,7 @@ $(function() { {foreach $modules key=key item=module} - {$module->displayName} + {$module->displayName} {$module->description} {/foreach} @@ -99,7 +97,7 @@ $(function() { {foreach $categories key=key item=category} - + {/foreach} @@ -159,8 +157,8 @@ $(function() { {foreach $addons key=key item=addon} - - + + {/foreach} From d93ea846a97212698aedd466975ba6f8c26e0b19 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 4 Nov 2013 14:29:31 +0100 Subject: [PATCH 226/247] // Code cleaning and small fixes --- .../template/controllers/themes/helpers/options/options.tpl | 2 +- controllers/admin/AdminPPreferencesController.php | 4 ---- controllers/admin/AdminSearchConfController.php | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/themes/helpers/options/options.tpl b/admin-dev/themes/default/template/controllers/themes/helpers/options/options.tpl index 689686077..198f91de5 100644 --- a/admin-dev/themes/default/template/controllers/themes/helpers/options/options.tpl +++ b/admin-dev/themes/default/template/controllers/themes/helpers/options/options.tpl @@ -50,7 +50,7 @@ {/block} {block name="after"} -
    +
    - {/if} - {if isset($css_files)} - {foreach from=$css_files key=css_uri item=media} - - {/foreach} - {/if} - {if isset($js_files)} - {foreach from=$js_files item=js_uri} - - {/foreach} - {/if} +{/if} +{if isset($css_files)} +{foreach from=$css_files key=css_uri item=media} + +{/foreach} +{/if} +{if isset($js_files)} +{foreach from=$js_files item=js_uri} + +{/foreach} +{/if} + {if isset($displayBackOfficeHeader)} diff --git a/controllers/admin/AdminPerformanceController.php b/controllers/admin/AdminPerformanceController.php index b961e7f6c..1e4cb39cb 100644 --- a/controllers/admin/AdminPerformanceController.php +++ b/controllers/admin/AdminPerformanceController.php @@ -134,11 +134,11 @@ class AdminPerformanceControllerCore extends AdminController $this->fields_form[1]['form'] = array( 'legend' => array( 'title' => $this->l('Debug mode'), - 'image' => '../img/admin/prefs.gif' + 'icon' => 'icon-bug' ), 'input' => array( array( - 'type' => 'radio', + 'type' => 'switch', 'label' => $this->l('Disable non PrestaShop modules'), 'name' => 'native_module', 'class' => 't', @@ -155,10 +155,10 @@ class AdminPerformanceControllerCore extends AdminController 'label' => $this->l('Disabled') ) ), - 'desc' => $this->l('Enable or disable non PrestaShop Modules.') + 'hint' => $this->l('Enable or disable non PrestaShop Modules.') ), array( - 'type' => 'radio', + 'type' => 'switch', 'label' => $this->l('Disable all overrides'), 'name' => 'overrides', 'class' => 't', @@ -175,7 +175,7 @@ class AdminPerformanceControllerCore extends AdminController 'label' => $this->l('Disabled') ) ), - 'desc' => $this->l('Enable or disable all classes and controllers overrides') + 'hint' => $this->l('Enable or disable all classes and controllers overrides') ), ), 'submit' => array( @@ -522,10 +522,6 @@ class AdminPerformanceControllerCore extends AdminController 'name' => 'ps_cache_fs_directory_depth' ), ), - 'submit' => array( - 'title' => $this->l('Save'), - 'class' => 'btn btn-default' - ), 'memcachedServers' => true ); From 48025838dfb63924bc4039c56c727dd852ab05da Mon Sep 17 00:00:00 2001 From: Kevin Granger Date: Mon, 4 Nov 2013 16:08:38 +0100 Subject: [PATCH 233/247] // fixs referrers --- .../controllers/referrers/form_settings.tpl | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/referrers/form_settings.tpl b/admin-dev/themes/default/template/controllers/referrers/form_settings.tpl index b3e587bde..08e10fcdf 100644 --- a/admin-dev/themes/default/template/controllers/referrers/form_settings.tpl +++ b/admin-dev/themes/default/template/controllers/referrers/form_settings.tpl @@ -32,7 +32,8 @@

    {l s='Settings'}

    -
    +
    {l s='Direct traffic can be quite resource-intensive. You should consider enabling it only if you have a strong need for it.'}
    +
    @@ -53,8 +54,8 @@
    -

    {l s='Direct traffic can be quite resource-intensive. You should consider enabling it only if you have a strong need for it.'}

    -
    @@ -66,8 +67,8 @@

    {l s='Indexation'}

    -

    {l s='There is a huge quantity of data, so each connection corresponding to a referrer is indexed. You can also refresh this index by clicking the button above. This process may take awhile, and it\'s only needed if you modified or added a referrer, or if you want changes to be retroactive.'}

    -
    @@ -79,8 +80,8 @@

    {l s='Cache'}

    -

    {l s='In order to sort and filter your data, it\'s cached. You can refresh the cache by clicking on the button above.'}

    - From d4a6148b641c55ba07bee8e000200b9b83c4fed5 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 4 Nov 2013 16:09:43 +0100 Subject: [PATCH 234/247] // Anything but a 404 image --- modules/graphnvd3/logo.gif | Bin 0 -> 924 bytes modules/graphnvd3/logo.png | Bin 0 -> 720 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 modules/graphnvd3/logo.gif create mode 100644 modules/graphnvd3/logo.png diff --git a/modules/graphnvd3/logo.gif b/modules/graphnvd3/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..5738da94b57ef509379eca0f4ef9f6c23035337b GIT binary patch literal 924 zcmZ?wbhEHb6krfw_|5#2*bXDq&vyZl!1s@tWjZ&$9p)3E7Y z!>0SKTOYJaT1f{eL z9&9+6z`@07kRg%qu(5?fp2_CJgGml-JRE8(_HZ6bILDyK0x$iEP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qRNAp5A0006%NklnKFNZrDgtv zlxc*V7D**3Q@+wpQVDk63p_{>Y=R+80wGukiq%88RS}Jdh#~|Nl>C6eWY*`4pr&cR&ETB}mbZ;TclGd)q7B~QoL8*#aAcA~7tv=~q`JnQxzxWL`o zhPS0OAIH1Z!!%ys!_!Xn*f}1n8{7d!Y0g|Wp2so!gDZ;~p)@c01d#S7-#n!#t6$Vu z5YWh(UqR8SR=of!RCCCJs|P2*%&3!Ds1{xNt5tn61Fr5`PQ|`DnF%LApUB1i5itGX ztNSXfeZ71XCdJl%w`(tc|Fu(Zw!<9o%=OuP^LM%Mecw9`eyl(F@yE}tAD-Kn3p-)1 zCICkXBsRt@ocnSZ76M|izg;`=cd-*-@APL7!T8mu13zBb{q6;eZ%qI}#32@dosGmF z5Q|SL00>AXVjC}p0Q|*P6Tp~2q%F1q8)6rK1TfYF$nm7l@gATGV9bW800K!`$&wt2 zCV*pz*9sh4oEcRB5P)E@jZIn1+r+hU-6Igevv)ym>-wF92L`*w!4IfVz{oK>+0FkO|JQs{&xM+9@F literal 0 HcmV?d00001 From 5f1efc6b634aabfd8704698d2c1fa297bc3ad2a9 Mon Sep 17 00:00:00 2001 From: fram Date: Mon, 4 Nov 2013 16:20:10 +0100 Subject: [PATCH 235/247] // installer typography --- install-dev/langs/bn/install.php | 6 +++--- install-dev/langs/br/install.php | 4 ++-- install-dev/langs/de/install.php | 4 ++-- install-dev/langs/es/install.php | 4 ++-- install-dev/langs/fr/install.php | 8 ++++---- install-dev/langs/id/install.php | 4 ++-- install-dev/langs/it/install.php | 6 +++--- install-dev/langs/nl/install.php | 4 ++-- install-dev/langs/pl/install.php | 4 ++-- install-dev/langs/ru/data/country.xml | 2 +- install-dev/langs/ru/install.php | 4 ++-- install-dev/langs/tw/install.php | 6 +++--- install-dev/theme/views/database.phtml | 4 ++-- 13 files changed, 30 insertions(+), 30 deletions(-) diff --git a/install-dev/langs/bn/install.php b/install-dev/langs/bn/install.php index e588eaa4f..4829a57d7 100644 --- a/install-dev/langs/bn/install.php +++ b/install-dev/langs/bn/install.php @@ -132,10 +132,10 @@ return array( 'Sign-up to the newsletter' => 'নিউজলেটারে সাইন আপ করŕ§ŕ¦¨ ', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'আপনার দোকান পরিচালনার অনŕ§ŕ¦•ূল টিপস প্রেরণ করে একটি নিয়মিত ভিত্তিতে নির্দেশিকা দিয়ে PrestaShop আপনার ব্যবসা বŕ§ŕ¦¦ŕ§Ťŕ¦§ŕ¦ż করতে সহায়তা করবে।আপনি এই টিপস পেতে না চাইলে এই বাক্সটি আনচেক করŕ§ŕ¦¨ŕĄ¤', 'Configure your database by filling out the following fields' => 'নিম্নলিখিত ক্ষেত্রগŕ§ŕ¦˛ŕ¦ż পূরণ করে আপনার ডাটাবেস কনফিগার করŕ§ŕ¦¨', - 'To use PrestaShop, you must ডেটাবেস তŕ§ŕ¦°ŕ¦ż করŕ§ŕ¦¨ to collect all of your store’s data-related activities.' => 'PrestaShop ব্যবহার করতে আপনাকে অবশ্যই ডাটাবেস তŕ§ŕ¦°ŕ¦ż করŕ§ŕ¦¨ এআপনার দোকান এর তথ্য সংক্রান্ত কার্যক্রম পূরণ করতে হবে', + 'To use PrestaShop, you must ডেটাবেস তŕ§ŕ¦°ŕ¦ż করŕ§ŕ¦¨ to collect all of your store\'s data-related activities.' => 'PrestaShop ব্যবহার করতে আপনাকে অবশ্যই ডাটাবেস তŕ§ŕ¦°ŕ¦ż করŕ§ŕ¦¨ এআপনার দোকান এর তথ্য সংক্রান্ত কার্যক্রম পূরণ করতে হবে', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'PrestaShop আপনার ডাটাবেসের সাথে সংযোগ করার জন্য নীচের ক্ষেত্রগŕ§ŕ¦˛ŕ¦ż পূরণ করŕ§ŕ¦¨.', 'Database server address' => 'ডাটাবেস সার্ভারের ঠিকানা', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'ডিফল্ট পোর্ট হল 3306।ভিন্ন পোর্ট ব্যবহার করতে হলে আপনার সার্ভারের ঠিকানা এবং শেষে পোর্ট সংখ্যা যোগ করŕ§ŕ¦¨ŕĄ¤ŕ¦Żŕ§‡ŕ¦®ŕ¦¨-":4242". ', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'ডিফল্ট পোর্ট হল 3306।ভিন্ন পোর্ট ব্যবহার করতে হলে আপনার সার্ভারের ঠিকানা এবং শেষে পোর্ট সংখ্যা যোগ করŕ§ŕ¦¨ŕĄ¤ŕ¦Żŕ§‡ŕ¦®ŕ¦¨-":4242". ', 'Database name' => 'ডেটাবেস নাম', 'Database login' => 'ডাটাবেস লগইন', 'Database password' => 'ডাটাবেজ পাসওয়ার্ড', @@ -202,6 +202,6 @@ return array( 'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'উপরোক্ত ভাষা নির্বাচন শŕ§ŕ¦§ŕ§ŕ¦®ŕ¦ľŕ¦¤ŕ§Ťŕ¦° ইনস্টলেশনের সহকারীর জন্য প্রযোজ্য।আপনার দোকান ইনস্টল করা হলে,আপনি উপর থেকে আপনার দোকানের ভাষা নির্বাচন করতে পারবেন একদম বিনামূল্যে!', 'If you need help, do not hesitate to check our documentation or to contact our support team: %2$s' => ' যদি আপনার কোনো সাহায্যের দরকার হয়,তবে আমাদের নত্থিপত্রচেক করতে দ্বিধা করবেন না অথবা আমাদের সাপোর্ট টিম এর সাথে যোগাযোগ করŕ§ŕ¦¨: %2$s ', 'Must be at least 8 characters' => 'আট অক্ষর নূন্যতম', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'PrestaShop ব্যবহার করতে আপনাকে অবশ্যই ডাটাবেস তŕ§ŕ¦°ŕ¦ż করŕ§ŕ¦¨ এআপনার দোকান এর তথ্য সংক্রান্ত কার্যক্রম পূরণ করতে হবে', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'PrestaShop ব্যবহার করতে আপনাকে অবশ্যই ডাটাবেস তŕ§ŕ¦°ŕ¦ż করŕ§ŕ¦¨ এআপনার দোকান এর তথ্য সংক্রান্ত কার্যক্রম পূরণ করতে হবে', ), ); \ No newline at end of file diff --git a/install-dev/langs/br/install.php b/install-dev/langs/br/install.php index f2db6fdec..4d5f62dfd 100644 --- a/install-dev/langs/br/install.php +++ b/install-dev/langs/br/install.php @@ -201,9 +201,9 @@ return array( 'Your Account' => 'Sua informação pessoal', 'This email address will be your username to access your store\'s back office.' => 'Este endereço de email será seu nome de usuário para acessar a área administrativa da sua loja.', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'O PrestaShop pode oferecer orientações Ă  vocĂŞ diariamente ao enviar dicas de como otimizar o gerenciamente da sua loja, o que vai lhe ajudar a crescer seu negĂłcio. Se vocĂŞ nĂŁo quer receber essas dicas, por favor desmarque este quadrinho.', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Para usar o PrestaShop, vocĂŞ deve criar um banco de dados para coletar todas as informações relacionadas com as atividades de sua loja.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Para usar o PrestaShop, vocĂŞ deve criar um banco de dados para coletar todas as informações relacionadas com as atividades de sua loja.', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Por favor, complete os campos abaixo para que o PrestaShop possa conectar com seu database.', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'O port padrĂŁo Ă© 3306. Para usar um port diferente, adicione o nĂşmero do port no final do endereço do seu servidor por exemplo “:4242”.', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'O port padrĂŁo Ă© 3306. Para usar um port diferente, adicione o nĂşmero do port no final do endereço do seu servidor por exemplo “:4242”.', 'Test your database connection now!' => 'Teste a conexĂŁo do seu banco de dados agora!', 'PrestaShop Installation Assistant' => 'Assistente de Instalação', 'Installation Assistant' => 'Assistente de Instalação', diff --git a/install-dev/langs/de/install.php b/install-dev/langs/de/install.php index cd5ea0518..b8bc9748e 100644 --- a/install-dev/langs/de/install.php +++ b/install-dev/langs/de/install.php @@ -194,8 +194,8 @@ return array( 'Your Account' => 'Ihre persönlichen Informationen', 'This email address will be your username to access your store\'s back office.' => 'Bitte bedenken Sie, dass diese E-Mail-Adresse Ihre Identifizierung ist, um ins Verwaltungsinterface Ihres Shops zu gelangen.', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop kann Sie regelmäßig anleiten und Ihnen Tipps fĂĽr die Shopverwaltung und Aktivitätsentwicklung geben. Wenn Sie keine Tipps wĂĽnschen, dann entfernen Sie bitte den Haken in diesem Kästchen.', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Um PrestaShop zu nutzen, mĂĽssen Sie eine Datenbank erstellen, auf der alle Daten zur Aktivität Ihres Shops gespeichert werden können.', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'Wenn Sie einen anderen Port als den Standardport (3306) nutzen möchten, fĂĽgen Sie zu Ihrer Serveradresse die Nummer xx Ihres Ports hinzu.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Um PrestaShop zu nutzen, mĂĽssen Sie eine Datenbank erstellen, auf der alle Daten zur Aktivität Ihres Shops gespeichert werden können.', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'Wenn Sie einen anderen Port als den Standardport (3306) nutzen möchten, fĂĽgen Sie zu Ihrer Serveradresse die Nummer xx Ihres Ports hinzu.', 'Test your database connection now!' => 'Testen Sie die Verbindung mit Ihrer Datenbank', 'PrestaShop Installation Assistant' => 'Installationsassistent', 'Contact us!' => 'Kontaktieren Sie uns!', diff --git a/install-dev/langs/es/install.php b/install-dev/langs/es/install.php index 6c4eb33da..478b4125d 100644 --- a/install-dev/langs/es/install.php +++ b/install-dev/langs/es/install.php @@ -195,9 +195,9 @@ return array( 'Your Account' => 'Tu cuenta', 'This email address will be your username to access your store\'s back office.' => 'Esta direcciĂłn de correo electrĂłnico corresponderá a tu usuario en el acceso al interfaz de administraciĂłn de tu tienda Online.', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop te puede proporcionar orientaciĂłn con el envĂ­o de consejos sobre cĂłmo optimizar y gestionar tu tienda, que te ayudarán a tener Ă©xito en tu negocio. Si no deseas recibir estos consejos, por favor desmarca esta casilla.', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Para utilizar PrestaShop, debes crear una base de datos para poder recoger todos los datos relacionados con tu actividad.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Para utilizar PrestaShop, debes crear una base de datos para poder recoger todos los datos relacionados con tu actividad.', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Por favor, rellena estos datos con el fin de que PrestaShop pueda conectarse a tu base de datos.', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'El puerto utilizado por defecto es el 3306. Si utilizas un puerto diferente, añade este nĂşmero de puerto al final de la direcciĂłn del servidor con dos puntos, por ejemplo ":4242".', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'El puerto utilizado por defecto es el 3306. Si utilizas un puerto diferente, añade este nĂşmero de puerto al final de la direcciĂłn del servidor con dos puntos, por ejemplo ":4242".', 'Test your database connection now!' => '¡Comprueba la conexiĂłn de tu base de datos ahora!', 'PrestaShop Installation Assistant' => 'Asistente para la instalaciĂłn de PrestaShop', 'Contact us!' => '¡Contáctenos!', diff --git a/install-dev/langs/fr/install.php b/install-dev/langs/fr/install.php index 87afdd0ae..507d2382d 100644 --- a/install-dev/langs/fr/install.php +++ b/install-dev/langs/fr/install.php @@ -135,7 +135,7 @@ return array( 'An error occured during installation...' => 'Une erreur est survenue durant l\'installation', 'You can use the links on the left column to go back to the previous steps, or restart the installation process by clicking here.' => 'Vous pouvez utiliser les liens Ă  gauche pour revenir aux Ă©tapes prĂ©cĂ©dentes, ou redĂ©marrer l\'installation en cliquant ici.', 'Your installation is finished!' => 'L\'installation est finie !', - 'You have just finished installing your shop. Thank you for using PrestaShop!' => 'Vous venez d’installer votre boutique en ligne, merci d\'avoir choisi PrestaShop !', + 'You have just finished installing your shop. Thank you for using PrestaShop!' => 'Vous venez d\'installer votre boutique en ligne, merci d\'avoir choisi PrestaShop !', 'Please remember your login information' => 'Merci de conserver les informations de connexion suivantes', 'WARNING: For security purposes, you must delete the "install" folder.' => 'ATTENTION : pour plus de sĂ©curitĂ©, merci de supprimer le dossier \'/install\'.', 'Back Office' => 'Administration', @@ -212,9 +212,9 @@ return array( 'The installation of PrestaShop is quick and easy. In just a few moments, you will become part of a community consisting of more than 150,000 merchants. You are on the way to creating your own unique online store that you can manage easily every day.' => 'L\'installation de PrestaShop est simple et rapide. En quelques minutes seulement, vous rejoindrez une communautĂ© de plus de 150 000 marchands pour crĂ©er une boutique en ligne Ă  votre image et la gĂ©rer facilement au quotidien.', 'Continue the installation in' => 'Continuer l\'installation en', 'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'Le choix de la langue ci-dessus s\'applique Ă  l\'assistant d\'installation. Une fois votre boutique installĂ©e, vous pourrez choisir la langue de votre boutique parmi plus de %d traductions disponibles gratuitement !', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Pour utiliser PrestaShop, vous devez crĂ©er une base de donnĂ©es afin de rassembler l\'ensemble des donnĂ©es liĂ©es Ă  l\'activitĂ© de votre boutique.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Pour utiliser PrestaShop, vous devez crĂ©er une base de donnĂ©es afin de rassembler l\'ensemble des donnĂ©es liĂ©es Ă  l\'activitĂ© de votre boutique.', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Merci de renseigner ci-dessous les informations requises pour que PrestaShop puisse se connecter Ă  votre base de donnĂ©es.', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'Si vous souhaitez utiliser un port diffĂ©rent du port par dĂ©faut (3306) ajoutez ":XX" Ă  l\'adresse de votre serveur, XX Ă©tant le numĂ©ro de votre port.', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'Si vous souhaitez utiliser un port diffĂ©rent du port par dĂ©faut (3306) ajoutez ":XX" Ă  l\'adresse de votre serveur, XX Ă©tant le numĂ©ro de votre port.', 'Test your database connection now!' => 'Tester la connexion Ă  la base de donnĂ©es', 'An error occurred during logo copy.' => 'Impossible de copier le logo', 'An error occurred during logo upload.' => 'Impossible d\'uploader le logo', @@ -251,6 +251,6 @@ return array( 'Files' => 'Fichiers', 'All files are not successfuly uploaded on your server' => 'Tous les fichiers n\'ont pas Ă©tĂ© correctement tĂ©lĂ©chargĂ©s sur votre serveur', 'Must be at least 8 characters' => 'Minimum 8 caractères', - 'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation' => 'http://doc.prestashop.com/display/PS15/Installer+PrestaShop#InstallerPrestaShop-Terminerl%27installation', + 'http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Completingtheinstallation' => 'http://doc.prestashop.com/display/PS15/Installer+PrestaShop#InstallerPrestaShop-Terminerl%%27installation', ), ); \ No newline at end of file diff --git a/install-dev/langs/id/install.php b/install-dev/langs/id/install.php index f5c9c5fae..7fa7fc51a 100644 --- a/install-dev/langs/id/install.php +++ b/install-dev/langs/id/install.php @@ -204,9 +204,9 @@ return array( 'Your Account' => 'Akun Anda', 'This email address will be your username to access your store\'s back office.' => 'Alamat email ini akan menjadi username Anda untuk mengakses backoffice.', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop menawarkan artikel dan tips yang dikirim secara teratur yang berisi tentang optimasi atau bagaimana mengatur toko Anda sehingga bisnis Anda berkembang lebih baik lagi. Jika tidak ingin menerima tips ini, silahkan uncheck kotak dibawah ini.', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Untuk menggunakan PrestaShop, Anda harus membuat database untuk menyimpan data.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Untuk menggunakan PrestaShop, Anda harus membuat database untuk menyimpan data.', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Harap lengkapi field dibawah ini agar Prestashop dapat terhubung ke database Anda..', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'Port default adalah 3306. Untuk menggunakan port yang berbeda, tambahkan nomor port diakhir nama server, misalnya ":4242".', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'Port default adalah 3306. Untuk menggunakan port yang berbeda, tambahkan nomor port diakhir nama server, misalnya ":4242".', 'Test your database connection now!' => 'Tes koneksi ke database sekarang!', 'PrestaShop Installation Assistant' => 'Instalasi Prestashop', 'Installation Assistant' => 'Instalasi Prestashop', diff --git a/install-dev/langs/it/install.php b/install-dev/langs/it/install.php index 9ce53f87d..ceb203a15 100644 --- a/install-dev/langs/it/install.php +++ b/install-dev/langs/it/install.php @@ -193,7 +193,7 @@ return array( 'Help us learn more about your store so we can offer you optimal guidance and the best features for your business!' => 'Aiutaci a conoscerti per orientarti al meglio e proporti le funzioni piĂą adatte alla tua attivitĂ !', 'Optional - You can add you logo at a later time.' => 'Facoltativo – Potrai aggiungerlo in un secondo momento.', 'Your Account' => 'Il tuo account', - 'This email address will be your username to access your store\'s back office.' => 'Questo indirizzo email sarĂ  il tuo nome utente con cui potrai accedere all’interfaccia di gestione del negozio.', + 'This email address will be your username to access your store\'s back office.' => 'Questo indirizzo email sarĂ  il tuo nome utente con cui potrai accedere all\'interfaccia di gestione del negozio.', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop può assisterti regolarmente facendoti pervenire i suoi consigli per ottimizzare la gestione del negozio e sviluppare la tua attivitĂ  online. Se non desideri ricevere i nostri consigli, deseleziona questa casella.', 'The field %s is limited to %d characters' => 'Il campo %s può comprendere fino a %d caratteri', 'An error occurred during logo copy.' => 'Si è verificato un errore durante la copiatura del logo.', @@ -216,9 +216,9 @@ return array( 'Cannot copy flag language "%s"' => 'Impossibile copiare la bandiera per la lingua "%s"', 'Must be alphanumeric string with at least 8 characters' => 'Deve essere una stringa alfanumerica di almeno 8 caratteri', 'Sign-up to the newsletter' => 'Abbonamento alla newsletter', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Per usare PrestaShop, devi creare un database per riunire tutti i dati inerenti alle attivitĂ  del tuo negozio.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Per usare PrestaShop, devi creare un database per riunire tutti i dati inerenti alle attivitĂ  del tuo negozio.', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Compila i campi sottostanti per far sì che PrestaShop possa connettersi al tuo database.', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'La porta di default è 3306. Per usare un\'altra porta, digita il numero della porta alla fine dell\'indirizzo server. Ad esempio ":4242".', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'La porta di default è 3306. Per usare un\'altra porta, digita il numero della porta alla fine dell\'indirizzo server. Ad esempio ":4242".', 'Test your database connection now!' => 'Verifica adesso la connessione al tuo database!', 'If you need some assistance during the installation process, please call our team at %s and one of our experts will be happy to help.' => 'Se si verificano problemi durante il processo di installazione, chiamaci: %s. Uno dei nostri esperti sarĂ  felice di aiutarti.', 'PrestaShop Installation Assistant' => 'Assistente di Installazione PrestaShop', diff --git a/install-dev/langs/nl/install.php b/install-dev/langs/nl/install.php index f69c88957..b6519afeb 100644 --- a/install-dev/langs/nl/install.php +++ b/install-dev/langs/nl/install.php @@ -79,10 +79,10 @@ return array( 'Password and its confirmation are different' => 'Wachtwoord en de bevestiging zijn verschillend', 'Other activity...' => 'Andere activiteit', 'Configure your database by filling out the following fields' => 'Configureer uw database door de volgende velden in te vullen', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Om PrestaShop te gebruiken, moet u een database maken om alle data-gerelateerde activiteiten van uw winkel te verzamelen', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Om PrestaShop te gebruiken, moet u een database maken om alle data-gerelateerde activiteiten van uw winkel te verzamelen', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Vul de onderstaande velden in, zodat PrestaShop een verbinding kan maken met uw database.', 'Database server address' => 'Database serveradres', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'De standaardpoort is 3306. Om een andere poort te gebruiken, voeg het poortnummer aan het einde van uw serveradres toe, bijv. ":4242".', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'De standaardpoort is 3306. Om een andere poort te gebruiken, voeg het poortnummer aan het einde van uw serveradres toe, bijv. ":4242".', 'Database name' => 'Database naam', 'Database login' => 'Database login', 'Database password' => 'Database wachtwoord', diff --git a/install-dev/langs/pl/install.php b/install-dev/langs/pl/install.php index 189a02309..b4c2a2533 100644 --- a/install-dev/langs/pl/install.php +++ b/install-dev/langs/pl/install.php @@ -162,8 +162,8 @@ return array( 'By default, the PHP mail() function is used' => 'DomyĹ›lnie - PHP mail () funkcja jest uĹĽywana.', 'SMTP server address:' => 'Adres serwera SMTP', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop wysyĹ‚a regularnie wskazĂłwki dotyczÄ…ce optymalizacji zarzÄ…dzania sklepem. JeĹ›li nie chcesz ich otrzymywać, odznacz pole.', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Aby korzystać z PrestaShop, musisz stworzyć baze danych, w celu zebrania wszystkich danych dotyczÄ…cych funkcjonowania Twojego sklepu.', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'JeĹ›li chcesz uĹĽyć innego portu niĹĽ port domyĹ›lny (3306), dodaj ":XX" do adresu Twojego serwera - gdzie XX oznacza numer portu.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Aby korzystać z PrestaShop, musisz stworzyć baze danych, w celu zebrania wszystkich danych dotyczÄ…cych funkcjonowania Twojego sklepu.', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'JeĹ›li chcesz uĹĽyć innego portu niĹĽ port domyĹ›lny (3306), dodaj ":XX" do adresu Twojego serwera - gdzie XX oznacza numer portu.', 'If you need some assistance during the installation process, please call our team at %s and one of our experts will be happy to help.' => 'JeĹ›li spotkaĹ‚eĹ› siÄ™ z problemami podczas instalacji, skontaktuj siÄ™ z naszym zespoĹ‚em %s.', 'PrestaShop Installation Assistant' => 'Asystent instalacji PrestaShop', 'I agree to participate in improving the solution by sending anonymous information about my configuration.' => 'WyraĹĽam chęć na udziaĹ‚ w ulepszaniu oprogramowania PrestaShop - wysyĹ‚ajÄ…c anonimowe informacje dotyczÄ…ce mojej konfiguracji.', diff --git a/install-dev/langs/ru/data/country.xml b/install-dev/langs/ru/data/country.xml index acde754d1..16954e728 100755 --- a/install-dev/langs/ru/data/country.xml +++ b/install-dev/langs/ru/data/country.xml @@ -429,7 +429,7 @@ - Кот-д’ĐвŃар + Кот-Đ´'ĐвŃар diff --git a/install-dev/langs/ru/install.php b/install-dev/langs/ru/install.php index 4b27fd2b0..b077f8b24 100644 --- a/install-dev/langs/ru/install.php +++ b/install-dev/langs/ru/install.php @@ -214,9 +214,9 @@ return array( 'Installation Assistant' => 'Помощник ŃŃтановки', 'License Agreements' => 'Лицензионное ŃоглŃение', 'Print my login information' => 'РаŃпечатать информацию Đľ моем аккаŃнте', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'Для иŃпользования PrestaShop, Вам ŃледŃет Ńоздать Đ±Đ°Đ·Ń Đ´Đ°Đ˝Đ˝Ń‹Ń… , чтобы ŃгрŃппировать информацию ВаŃего магазина.', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'Для иŃпользования PrestaShop, Вам ŃледŃет Ńоздать Đ±Đ°Đ·Ń Đ´Đ°Đ˝Đ˝Ń‹Ń… , чтобы ŃгрŃппировать информацию ВаŃего магазина.', 'Please complete the fields below in order for PrestaShop to connect to your database. ' => 'Заполните поля ниже, чтобы PrestaShop Ńмог ŃŃтановить Ńоединение Ń Đ’Đ°Ńей Ń Đ±Đ°Đ·ĐľĐą данных.', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'Порт по Ńмолчанию: 3306. Đ•Ńли Đ’Ń‹ иŃпользŃете Đ´Ń€Ńгой порт, то введите номер порта в Đ°Đ´Ń€ĐµŃ Đ’Đ°Ńего Ńервера. пример: ":4242".', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'Порт по Ńмолчанию: 3306. Đ•Ńли Đ’Ń‹ иŃпользŃете Đ´Ń€Ńгой порт, то введите номер порта в Đ°Đ´Ń€ĐµŃ Đ’Đ°Ńего Ńервера. пример: ":4242".', 'Continue the installation in' => 'Продолжить ŃŃтановкŃ', 'The language selection above only applies to the Installation Assistant. Once your store is installed, you can choose the language of your store from over %d translations, all for free!' => 'Выбранный Вами язык применим только для Помощника ŃŃтановки. ПоŃле ŃŃтановки магазина Đ’Ń‹ можете выбрать любой из %d беŃплатных переводов!', 'PrestaShop compatibility with your system environment has been verified!' => 'Полная ŃовмеŃтимоŃть PrestaShop проверена!', diff --git a/install-dev/langs/tw/install.php b/install-dev/langs/tw/install.php index 5677f4254..f6ecda263 100644 --- a/install-dev/langs/tw/install.php +++ b/install-dev/langs/tw/install.php @@ -178,8 +178,8 @@ return array( 'Your Account' => '您的帳號', 'This email address will be your username to access your store\'s back office.' => '這個信箱ćść為您登入商店後台的帳號', 'PrestaShop can provide you with guidance on a regular basis by sending you tips on how to optimize the management of your store which will help you grow your business. If you do not wish to receive these tips, please uncheck this box.' => 'PrestaShop 可以定期ćŹäľ›ć‚¨ĺ»şč­°ďĽŚĺŤ”助您最佳化商店的管ç†ďĽŚč—‰ć­¤ćŹć‡ćĄ­ç¸ľă€‚如果您不ćłć”¶ĺ°é€™äş›ĺ»şč­°ďĽŚč«‹ĺŹ–ć¶ĺ‹ľé¸', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'č¦ä˝żç”¨ PrestaShop ďĽŚć‚¨ĺż…é  ĺ»şç«‹ä¸€ĺ€‹čł‡ć–™ĺş« 來儲ĺ­ĺ•†ĺş—的活動相關資料', - 'The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".' => 'é č¨­é€ŁćŽĄĺź ćŻ 3306 ,č¦ä˝żç”¨ĺ…¶ä»–連接埠,請將連接埠編號加入ĺ°äĽşćśŤĺ™¨ç¶˛ĺť€ĺľŚéť˘ďĽŚäľ‹ĺ¦‚ "localhost:4242"', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'č¦ä˝żç”¨ PrestaShop ďĽŚć‚¨ĺż…é  ĺ»şç«‹ä¸€ĺ€‹čł‡ć–™ĺş« 來儲ĺ­ĺ•†ĺş—的活動相關資料', + 'The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".' => 'é č¨­é€ŁćŽĄĺź ćŻ 3306 ,č¦ä˝żç”¨ĺ…¶ä»–連接埠,請將連接埠編號加入ĺ°äĽşćśŤĺ™¨ç¶˛ĺť€ĺľŚéť˘ďĽŚäľ‹ĺ¦‚ "localhost:4242"', 'Test your database connection now!' => '現在測試您的資料庫連線ďĽ', 'PrestaShop Installation Assistant' => '安裝協助', 'Contact us!' => 'čŻçµˇć‘們ďĽ', @@ -246,7 +246,7 @@ return array( 'Attempt to create the database automatically' => 'ĺ—試自動建立資料庫', 'Country' => '國家', 'Must be letters and numbers with at least 8 characters' => 'ĺż…é ćŻč‹±ć–‡ĺ­—母č‡ć•¸ĺ­—的組ĺ,至少 8 個字', - 'To use PrestaShop, you must create a database to collect all of your store’s data-related activities.' => 'č¦ä˝żç”¨ PrestaShop ďĽŚć‚¨ĺż…é  ĺ»şç«‹ä¸€ĺ€‹čł‡ć–™ĺş« 來儲ĺ­ĺ•†ĺş—的資料č‡ç›¸é—ść“Ťä˝ś', + 'To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.' => 'č¦ä˝żç”¨ PrestaShop ďĽŚć‚¨ĺż…é  ĺ»şç«‹ä¸€ĺ€‹čł‡ć–™ĺş« 來儲ĺ­ĺ•†ĺş—的資料č‡ç›¸é—ść“Ťä˝ś', 'If you need some assistance during the installation process, please call our team at %s and one of our experts will be happy to help.' => '在安裝éŽç¨‹ĺ¦‚果需č¦ĺŤ”ĺŠ©ďĽŚč«‹é€ŹéŽ %s č‡ć‘們čŻçą«ďĽŚć‘們的ĺ°ĺ®¶ćśĺľć¨‚意協助', 'To install PrestaShop, you need to have JavaScript enabled in your browser.' => 'č¦ĺ®‰čŁť PrestaShop ,您必é ĺ•źç”¨ç€Źč¦˝ĺ™¨çš„ JavaScript 估č˝', 'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript' => 'http://doc.prestashop.com/display/PS15/What+you+need+to+get+started#HowtoenableJavaScript-HowtoenableJavaScript', diff --git a/install-dev/theme/views/database.phtml b/install-dev/theme/views/database.phtml index d39d60f27..8a9ce6ed0 100644 --- a/install-dev/theme/views/database.phtml +++ b/install-dev/theme/views/database.phtml @@ -4,7 +4,7 @@

    l('Configure your database by filling out the following fields') ?>

    - l('To use PrestaShop, you must create a database to collect all of your store’s data-related activities.') ?> + l('To use PrestaShop, you must create a database to collect all of your store\'s data-related activities.') ?>
    l('Please complete the fields below in order for PrestaShop to connect to your database. ') ?>

    @@ -13,7 +13,7 @@

    - l('The default port is 3306. To use a different port, add the port number at the end of your server’s address i.e ":4242".') ?> + l('The default port is 3306. To use a different port, add the port number at the end of your server\'s address i.e ":4242".') ?>

    From 695326bc4e65294f8fd60a02e5f686122a8f6d1f Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 4 Nov 2013 16:47:03 +0100 Subject: [PATCH 236/247] // Filter search BO --- controllers/admin/AdminSearchController.php | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/controllers/admin/AdminSearchController.php b/controllers/admin/AdminSearchController.php index 9cd2d9899..0a400c1d8 100644 --- a/controllers/admin/AdminSearchController.php +++ b/controllers/admin/AdminSearchController.php @@ -197,14 +197,17 @@ class AdminSearchControllerCore extends AdminController $this->_list['modules'][] = $module; } - $vars = http_build_query(array( - 'version' => _PS_VERSION_, - 'iso_lang' => Tools::strtolower(Context::getContext()->language->iso_code), - 'iso_code' => Tools::strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))), - 'search_query' => $this->query - )); - if (($json_content = Tools::file_get_contents('https://api.addons.prestashop.com/search.php?'.$vars)) != false) - $this->_list['addons'] = Tools::jsonDecode($json_content, true); + if (!is_numeric(trim($this->query)) && !Validate::isEmail($this->query)) + { + $vars = http_build_query(array( + 'version' => _PS_VERSION_, + 'iso_lang' => Tools::strtolower(Context::getContext()->language->iso_code), + 'iso_code' => Tools::strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))), + 'search_query' => $this->query + )); + if (($json_content = Tools::file_get_contents('https://api.addons.prestashop.com/search.php?'.$vars)) != false) + $this->_list['addons'] = Tools::jsonDecode($json_content, true); + } } /** From 0009556ed591c71c675a3d6ba7f1d244e39348b2 Mon Sep 17 00:00:00 2001 From: Damien Metzger Date: Mon, 4 Nov 2013 16:51:19 +0100 Subject: [PATCH 237/247] // Fixed no bootstrap for modules --- controllers/admin/AdminModulesController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/controllers/admin/AdminModulesController.php b/controllers/admin/AdminModulesController.php index 5b43ab279..3a5928c3a 100644 --- a/controllers/admin/AdminModulesController.php +++ b/controllers/admin/AdminModulesController.php @@ -693,6 +693,7 @@ class AdminModulesControllerCore extends AdminController // If the method called is "configure" (getContent method), we show the html code of configure page if ($key == 'configure' && Module::isInstalled($module->name)) { + $this->bootstrap = (isset($module->bootstrap) && $module->bootstrap); if (isset($module->multishop_context)) $this->multishop_context = $module->multishop_context; From 68cda947edd1fd0cdd197063f830255a7c6982d0 Mon Sep 17 00:00:00 2001 From: Kevin Granger Date: Mon, 4 Nov 2013 16:53:43 +0100 Subject: [PATCH 238/247] // removed login.css --- admin-dev/ajaxfilemanager/ajax_login.php | 1 - css/login.css | 175 ----------------------- modules/trackingfront/login.tpl | 1 - 3 files changed, 177 deletions(-) delete mode 100644 css/login.css diff --git a/admin-dev/ajaxfilemanager/ajax_login.php b/admin-dev/ajaxfilemanager/ajax_login.php index 2f07dc7d1..cbf069ed1 100755 --- a/admin-dev/ajaxfilemanager/ajax_login.php +++ b/admin-dev/ajaxfilemanager/ajax_login.php @@ -32,7 +32,6 @@ if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] === false) { - <?php echo LOGIN_PAGE_TITLE; ?> diff --git a/css/login.css b/css/login.css deleted file mode 100644 index 29fcd7136..000000000 --- a/css/login.css +++ /dev/null @@ -1,175 +0,0 @@ -body { - margin: 0; - padding: 0; - font-family: Arial; - font-size: 13px; - color: #333; - text-align: center; - background-image: url('../img/admin/bg-admin.jpg'); - background-position: center center; -} - -h1 { - color: #902F52; - font-size: 20pt; - padding: 15px 10px 10px 30px; - margin: 0; - overflow: hidden; -} - -h2 a { - color: #eee; - font-size: 11px; - margin: 0; - text-shadow: 0 -1px 0 #000; - text-decoration:none; -} - -h2 a:hover { - color: #eee; - text-decoration: underline; - margin: 0; -} - -a { - color: #902d50; - text-decoration: underline; -} - -a:hover { - color: #902d50; - text-decoration: none; -} - -input, textarea, option, select { - color: #000; - font-family: Arial; - font-size: 16px; - margin: 0; - padding: 0; -} - -input:focus, textarea:focus { - border: 1px solid #3293D6; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) inset; -} - -/* CONTENT */ -#container { - width: 464px; - margin: 12% auto 1em; - padding: 0; -} - -#login { - color: #383838; - text-align: left; - font-weight: bold; - background-color:#F5F5F5; - border-radius:9px; - box-shadow: 0 1px 30px #333333; -} - -#login h1 { - border-bottom:1px solid #ccc; - color:#333; - text-shadow:0 1px 0 #fff; -} - -#login a { color:#3A6EA7; } -#login label { text-shadow: 0 1px 0 #fff; } -#login form { - border-top:1px solid #fff; - margin: 0; - padding: 30px; -} - -#login .submit { - margin: 1em 1px; - padding: 0; - display: block; - float:left; -} - -#login .submit input { - padding: 4px 10px; -} - -/* ERROR */ -.error, #error { - margin: 0; - padding: 10px 15px; - border: 1px solid #EC9B9B; - background-color: #FAE2E3; - text-align: left; - border-radius:9px; - box-shadow: 0 1px 30px #333333; -} - -#error ol { - margin: 15px 0 0 0; - padding-bottom: 0; -} - -#error li { - _margin-left: 45px; - font-family: Georgia; - font-size: 13px; - font-style: italic; -} - -#error h3 { - margin: 0; - padding: 5px 0 12px 30px; - background: url(../img/admin/icon-cancel.png) no-repeat 0 0; - font-size: 16px; - text-indent:14px; -} - -/* CLASS */ - -.input { - border:1px solid #ccc; - width: 365px; - margin:0; - padding: 6px 4px 6px 35px; -} - -.email_field { background: #fff url(../img/admin/bg_form_email.png) no-repeat scroll 10px 8px; } -.password_field { background: #fff url(../img/admin/bg_form_password.png) no-repeat scroll 10px 8px; } - -.button { - background: -moz-linear-gradient(center top , #F9F9F9, #E3E3E3) repeat scroll 0 0 transparent; - background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#E3E3E3)) repeat scroll 0 0 transparent; - border-color: #CCCCCC #BBBBBB #A0A0A0; - border-left: 1px solid #BBBBBB; - border-radius: 3px 3px 3px 3px; - border-right: 1px solid #BBBBBB; - border-style: solid; - border-width: 1px; - color: #000000; - margin: 0; - outline: medium none; - padding: 3px 8px; -} - -.button:hover { - border:1px solid #939393; - cursor:pointer; -} - -.clear { clear: both; } -.hide { display: none; } -.bold { font-weight: bold; } - -.field { margin-bottom: 20px; } - -.fl { float: left; } -.fr { float: right; } - -.no-margin { margin: 0; } -.margin-right-5 { margin-right: 5px; } - -.padding-30 { padding: 30px; } - -.center { text-align: center; } diff --git a/modules/trackingfront/login.tpl b/modules/trackingfront/login.tpl index e9f41cb33..bd902304f 100644 --- a/modules/trackingfront/login.tpl +++ b/modules/trackingfront/login.tpl @@ -27,7 +27,6 @@ - PrestaShop™ - {l s='Affiliation' mod='trackingfront'} From f3fa65f9be0ce38d772994ce34c6352989956e44 Mon Sep 17 00:00:00 2001 From: Kevin Granger Date: Mon, 4 Nov 2013 16:58:27 +0100 Subject: [PATCH 239/247] // removed admin-ie.css --- admin-dev/header.inc.php | 3 --- admin-dev/themes/default/template/controllers/login/header.tpl | 3 --- admin-dev/themes/default/template/header.tpl | 3 --- css/admin-ie.css | 2 -- 4 files changed, 11 deletions(-) delete mode 100644 css/admin-ie.css diff --git a/admin-dev/header.inc.php b/admin-dev/header.inc.php index 26110efc9..86a4aac2d 100644 --- a/admin-dev/header.inc.php +++ b/admin-dev/header.inc.php @@ -56,9 +56,6 @@ echo ' '.Hook::exec('displayBackOfficeHeader').' -

    {$category}
    {$addon.title|escape:'htmlall':'UTF-8'}{$addon.description|escape:'htmlall':'UTF-8'}{$addon.title|escape:'htmlall':'UTF-8'}{$addon.description|truncate:256:'...'|escape:'htmlall':'UTF-8'}