first commit

This commit is contained in:
2025-05-30 15:12:20 +02:00
commit 326a834e98
1764 changed files with 325325 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>pdproductattributeslist</name>
<displayName><![CDATA[Lista kombinacji produkt&oacute;w na stronie produktu]]></displayName>
<version><![CDATA[2.0.0]]></version>
<description><![CDATA[Lista kombinacji produkt&oacute;w na stronie produktu w tab-ie lub w stopce produktu lub własnym zaczepieniu]]></description>
<author><![CDATA[PrestaDev.pl]]></author>
<tab><![CDATA[front_office_features]]></tab>
<is_configurable>1</is_configurable>
<need_instance>0</need_instance>
<limited_countries></limited_countries>
</module>

View File

@@ -0,0 +1,108 @@
<?php
/**
*
* @author Patryk Marek <info@prestadev.pl>
* @copyright 2013 - 2017 Patryk Marek
* @link http://prestadev.pl
* @package Product attributes list for PrestaShop 1.5.x and 1.6.x and 1.7.x
* @version 1.0.3
* @license Do not edit, modify or copy this file, if you wish to customize it, contact us at info@prestadev.pl
* @date 28-10-2017
*
*/
class PdProductAttributesListAjaxModuleFrontController extends ModuleFrontController
{
public function initContent()
{
$this->ajax = true;
parent::initContent();
}
public function displayAjax()
{
$this->createCart();
}
public function createCart()
{
$module = new PdProductAttributesList();
if (Tools::getValue('secure_key') == $module->secure_key) {
$action = Tools::getValue('action');
if ($action == 'addProductsToCart') {
$products = (array)Tools::getValue('products');
$context = Context::getContext();
if ((int)$context->cart->id == 0) {
$cart = new Cart();
$cart->id_currency = $this->context->currency->id;
$cart->add();
$context->cart = $cart;
$context->cookie->id_cart = $cart->id;
$context->cookie->write();
} else {
$cart = $context->cart;
}
$result = false;
if (is_array($products) && sizeof($products)) {
$n = 0;
$res = [];
foreach ($products as $p) {
$product = new Product($p['id_product'], false, $this->context->language->id, $this->context->shop->id);
$n++;
$res[$n]['response'] = $this->context->cart->updateQty(
$p['quantity'],
$p['id_product'],
$p['id_product_attribute'],
$p['id_customization']
);
$res[$n]['id_product'] = $p['id_product'];
$res[$n]['id_product_attribute'] = $p['id_product_attribute'];
$res[$n]['quantity'] = $p['quantity'];
$res[$n]['product_name'] = $product->name;
$res[$n]['max_quantity'] = StockAvailable::getQuantityAvailableByProduct($p['id_product'], $p['id_product_attribute'], $this->context->shop->id);
$res[$n]['combination_name'] = $this->getAttributeCombinationsFullNameById($p['id_product'], $p['id_product_attribute'], $this->context->language->id, true);
}
$result = [true];
}
die(json_encode($res));
}
}
}
public function getAttributeCombinationsFullNameById($id_product, $id_product_attribute, $id_lang, $groupByIdAttributeGroup = true)
{
if (!Combination::isFeatureActive()) {
return [];
}
$sql = 'SELECT CONCAT(agl.`name`, al.`name`) AS combination_name, agl.`name` AS group_name, al.`name` AS attribute_name,
a.`id_attribute`, a.`position`
FROM `' . _DB_PREFIX_ . 'product_attribute` pa
' . Shop::addSqlAssociation('product_attribute', 'pa') . '
LEFT JOIN `' . _DB_PREFIX_ . 'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute`
LEFT JOIN `' . _DB_PREFIX_ . 'attribute` a ON a.`id_attribute` = pac.`id_attribute`
LEFT JOIN `' . _DB_PREFIX_ . 'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group`
LEFT JOIN `' . _DB_PREFIX_ . 'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = ' . (int) $id_lang . ')
LEFT JOIN `' . _DB_PREFIX_ . 'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = ' . (int) $id_lang . ')
WHERE pa.`id_product` = ' . (int) $id_product . '
AND pa.`id_product_attribute` = ' . (int) $id_product_attribute . '
GROUP BY pa.`id_product_attribute`' . ($groupByIdAttributeGroup ? ',ag.`id_attribute_group`' : '') . '
ORDER BY pa.`id_product_attribute`';
$res = Db::getInstance()->executeS($sql);
$combination_name = '';
foreach ($res as $key => $row) {
$combination_name .= $row['group_name'] . ': '.$row['attribute_name'].', ';
}
if (empty($combination_name)) {
$module = new PdProductAttributesList();
return $module->l('No variant');
} else {
return rtrim($combination_name, ', ');
}
}
}

View File

@@ -0,0 +1,28 @@
<?php
/**
* 2012-2022 Patryk Marek PrestaDev
*
* Patryk Marek PrestaDev - PD Related Products Pro © All rights reserved.
*
* DISCLAIMER
*
* Do not edit, modify or copy this file.
* If you wish to customize it, contact us at PrestaShop Addons.
*
* @author Patryk Marek PrestaDev
* @copyright 2012-2022 Patryk Marek - PrestaDev
* @package PD Related Products Pro 1 - PrestaShop 1.6.x and 1.7.x Module
* @version 1.1.1
* @license https://opensource.org/licenses/Apache-2.0 http://www.apache.org/licenses/LICENSE-2.0 Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License.* @date 10-06-2015
*/
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;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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 <contact@prestashop.com>
* @copyright 2007-2011 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;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 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 <contact@prestashop.com>
* @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;

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,683 @@
<?php
/**
*
* @author Patryk Marek <info@prestadev.pl>
* @copyright 2013 - 2017 Patryk Marek
* @link http://prestadev.pl
* @package Product attributes list for PrestaShop 1.5.x and 1.6.x and 1.7.x
* @version 1.0.3
* @license Do not edit, modify or copy this file, if you wish to customize it, contact us at info@prestadev.pl
* @date 28-10-2017
*
*/
if (!defined('_PS_VERSION_')) {
exit;
}
class PdProductAttributesList extends Module
{
private $html = '';
private $postErrors = array();
public function __construct()
{
$this->name = 'pdproductattributeslist';
$this->tab = 'front_office_features';
$this->version = '2.0.0';
$this->author = 'PrestaDev.pl';
$this->need_instance = 0;
$this->module_key = '5f46066c31c75e2acfdf9483396e7ar6';
$this->secure_key = Tools::encrypt($this->name);
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l('Product attributes list on product page');
$this->description = $this->l('Allow to display product attributes list on product page as a tab or in product footer hook');
$this->ps_version_17 = (version_compare(substr(_PS_VERSION_, 0, 3), '1.7', '=')) ? true : false;
$this->ps_version_8 = (version_compare(substr(_PS_VERSION_, 0, 3), '8.0', '>=')) ? true : false;
}
public function install()
{
if (!parent::install()
|| !$this->registerHook('displayProductTab')
|| !$this->registerHook('displayHeader')
|| !$this->registerHook('displayFooterProduct')
|| !$this->registerHook('displayProductTabContent')
|| !$this->registerHook('displayProductExtraContent')
|| !$this->registerHook('displayCustomAttributesListTable')
|| !Configuration::updateValue('PD_PAL_ONLY_IN_STOCK', 0)
|| !Configuration::updateValue('PD_PAL_DISPLAY_T_HEADING', 1)
|| !Configuration::updateValue('PD_PAL_DISPLAY_B_HEADING', 1)
|| !Configuration::updateValue('PD_PAL_SHOW_ATTRIBUT_TETEXTURE_IMG', 1)
|| !Configuration::updateValue('PD_PAL_DISPLAY_LAYOUT', 0)
|| !Configuration::updateValue('PD_PAL_PLACEMENT', 1)) {
return false;
}
return true;
}
public function uninstall()
{
if (!parent::uninstall()) {
return false;
}
return true;
}
/*
** Form Config Methods
**
*/
public function getContent()
{
if (Tools::isSubmit('btnSubmit')) {
$this->postValidation();
if (!count($this->postErrors)) {
$this->postProcess();
} else {
foreach ($this->postErrors as $err) {
$this->html .= $this->displayError($err);
}
}
} else {
$this->html .= '<br />';
}
$this->html .= '<h2>'.$this->displayName.' (v'.$this->version.')</h2><p>'.$this->description.'</p>';
$this->html .= $this->renderForm();
$this->html .= '<br />';
$this->html .= $this->displayExtraForm();
return $this->html;
}
public function renderForm()
{
$switch = version_compare(_PS_VERSION_, '1.6.0', '>=') ? 'switch' : 'radio';
$fields_form_1 = array(
'form' => array(
'legend' => array(
'title' => $this->l('Module Configuration'),
'icon' => 'icon-cogs'
),
'input' => array(
array(
'type' => $switch,
'label' => $this->l('Display block heading'),
'desc' => $this->l('Displays block heading'),
'class' => 't',
'name' => 'PD_PAL_DISPLAY_B_HEADING',
'values' => array(
array(
'id' => 'yes',
'value' => 1,
'label' => $this->l('Yes')
),
array(
'id' => 'no',
'value' => 0,
'label' => $this->l('No')
),
)
),
array(
'type' => 'radio',
'label' => $this->l('Display layout'),
'desc' => $this->l('Display layout of product combinations'),
'class' => 't',
'name' => 'PD_PAL_DISPLAY_LAYOUT',
'values' => array(
array(
'id' => '0',
'value' => 0,
'label' => $this->l('Table')
),
array(
'id' => '1',
'value' => 1,
'label' => $this->l('Grid')
)
)
),
array(
'type' => 'radio',
'label' => $this->l('Table placement'),
'desc' => $this->l('Displays table in product page tab or custom hook in product page (see instructions bellow)'),
'class' => 't',
'name' => 'PD_PAL_PLACEMENT',
'values' => array(
array(
'id' => '0',
'value' => 0,
'label' => $this->l('Custom hook (displayCustomAttributesListTable)')
),
array(
'id' => '1',
'value' => 1,
'label' => $this->l('Product tab')
),
array(
'id' => '2',
'value' => 2,
'label' => $this->l('Product footer')
),
)
),
),
'submit' => array(
'title' => $this->l('Save settings'),
)
),
);
$helper = new HelperForm();
$helper->module = $this;
$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 = 'btnSubmit';
$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_1));
}
private function displayExtraForm()
{
$this->html .= '
<fieldset class="panel">
<div class="panel-heading">
<i class="icon-cogs"></i>
'.$this->l('Instalation instructions for custom hook table').'
</div>
<div class="form-wrapper">
'.$this->l('Please open file on which You want to add module').'
'.$this->l('for editing and add in place where you want to display table code:').'
<textarea name="code" cols="100" rows="2">{hook h=\'displayCustomAttributesListTable\'}</textarea>
</div>
</fieldset>';
}
public function getConfigFieldsValues()
{
$return = array();
$return['PD_PAL_DISPLAY_T_HEADING'] = Tools::getValue('PD_PAL_DISPLAY_T_HEADING', Configuration::get('PD_PAL_DISPLAY_T_HEADING'));
$return['PD_PAL_DISPLAY_B_HEADING'] = Tools::getValue('PD_PAL_DISPLAY_B_HEADING', Configuration::get('PD_PAL_DISPLAY_B_HEADING'));
$return['PD_PAL_PLACEMENT'] = Configuration::get('PD_PAL_PLACEMENT');
$return['PD_PAL_ONLY_IN_STOCK'] = Configuration::get('PD_PAL_ONLY_IN_STOCK');
$return['PD_PAL_DISPLAY_LAYOUT'] = Configuration::get('PD_PAL_DISPLAY_LAYOUT');
$return['PD_PAL_SHOW_ATTRIBUT_TETEXTURE_IMG'] = Configuration::get('PD_PAL_SHOW_ATTRIBUT_TETEXTURE_IMG');
return $return;
}
private function postValidation()
{
}
private function postProcess()
{
Configuration::updateValue('PD_PAL_DISPLAY_B_HEADING', Tools::getValue('PD_PAL_DISPLAY_B_HEADING'));
Configuration::updateValue('PD_PAL_DISPLAY_T_HEADING', Tools::getValue('PD_PAL_DISPLAY_T_HEADING'));
Configuration::updateValue('PD_PAL_PLACEMENT', Tools::getValue('PD_PAL_PLACEMENT'));
Configuration::updateValue('PD_PAL_ONLY_IN_STOCK', Tools::getValue('PD_PAL_ONLY_IN_STOCK'));
Configuration::updateValue('PD_PAL_DISPLAY_LAYOUT', Tools::getValue('PD_PAL_DISPLAY_LAYOUT'));
Configuration::updateValue('PD_PAL_SHOW_ATTRIBUT_TETEXTURE_IMG', Tools::getValue('PD_PAL_SHOW_ATTRIBUT_TETEXTURE_IMG'));
$this->html .= $this->displayConfirmation($this->l('Settings updated'));
}
public function hookDisplayHeader($params)
{
if (!empty(Context::getContext()->controller->php_self)) {
$controller = Context::getContext()->controller->php_self;
} else {
$controller = Tools::getValue('controller');
}
if ($controller == 'product' || $controller == 'category') {
$this->context->controller->addJquery();
$this->context->controller->addJqueryPlugin('fancybox');
$this->context->controller->addJqueryPlugin('growl', null, false);
$this->context->controller->registerStylesheet('growl-css', 'js/jquery/plugins/growl/jquery.growl.css');
Media::addJsDef(array(
'pdproductattributeslist_add_ok' => $this->l(' was added!'),
'pdproductattributeslist_title_error' => $this->l('Error'),
'pdproductattributeslist_title_ok' => $this->l('Success'),
'pdproductattributeslist_pcs' => $this->l('pcs.'),
'pdproductattributeslist_product' => $this->l('Product: '),
'pdproductattributeslist_variant' => $this->l('in variant:'),
'pdproductattributeslist_max_qty' => $this->l(' max quantity is: '),
'pdproductattributeslist_add_error' => $this->l('There no products quantities selected!'),
'pdproductattributeslist_secure_key' => $this->secure_key,
'pdproductattributeslist_ajax_link' => $this->context->link->getModuleLink('pdproductattributeslist', 'ajax', array()),
));
}
$this->context->controller->registerStylesheet('modules-pdproductattributeslist-front', 'modules/'.$this->name.'/views/css/pdproductattributeslist.css', array('media' => 'all', 'priority' => 150));
$this->context->controller->registerStylesheet('modules-pdproductattributeslist-front-tablesorter', 'modules/'.$this->name.'/views/css/theme.default.min.css', array('media' => 'all', 'priority' => 150));
$this->context->controller->registerStylesheet('modules-pdproductattributeslist-front-tablesorter-bootstrap-3', 'modules/'.$this->name.'/views/css/theme.bootstrap_3.min.css', array('media' => 'all', 'priority' => 150));
$this->context->controller->registerStylesheet('modules-pdproductattributeslist-front-tablesorter-bootstrap-4', 'modules/'.$this->name.'/views/css/theme.bootstrap_4.min.css', array('media' => 'all', 'priority' => 150));
$this->context->controller->registerStylesheet('modules-pdproductattributeslist-front-tablesorter-bootstrap', 'modules/'.$this->name.'/views/css/theme.bootstrap.min.css', array('media' => 'all', 'priority' => 150));
$this->context->controller->registerJavascript('modules-pdproductattributeslist-tablesorter', 'modules/'.$this->name.'/views/js/jquery.tablesorter.min.js', array('position' => 'bottom', 'priority' => 150));
$this->context->controller->registerJavascript('modules-pdproductattributeslist-tablesorter-widgets', 'modules/'.$this->name.'/views/js/jquery.tablesorter.widgets.min.js', array('position' => 'bottom', 'priority' => 150));
$this->context->controller->registerJavascript('modules-pdproductattributeslist', 'modules/'.$this->name.'/views/js/pdproductattributeslist.js', array('position' => 'bottom', 'priority' => 150));
}
public function hookDisplayProductExtraContent($params)
{
$placement = Configuration::get('PD_PAL_PLACEMENT');
$product = $this->context->controller->getProduct();
if ($product->hasAttributes() == 0) {
return array();
}
if (($this->ps_version_17 || $this->ps_version_8) && $placement == 1 && Tools::getValue('ajax', 'false') == 'false') {
$tabz[] = (new PrestaShop\PrestaShop\Core\Product\ProductExtraContent())->setTitle($this->l('Select product combination'))->setContent($this->hookDisplayProductTabContent($params));
return $tabz;
} else {
return array();
}
}
public function hookDisplayProductTabContent($params)
{
$placement = Configuration::get('PD_PAL_PLACEMENT');
$display_layout = Configuration::get('PD_PAL_DISPLAY_LAYOUT');
if ($placement == 1) {
$id_lang = (int)$this->context->language->id;
$id_shop = (int)$this->context->shop->id;
$product = $this->context->controller->getProduct();
$product_combinations = $this->getAttributeCombinations($product->id, $id_lang, $id_shop);
//dump($product_combinations);
$this->context->smarty->assign(array(
'product_combinations' => $product_combinations,
'block_heading'=> Configuration::get('PD_PAL_DISPLAY_B_HEADING'),
'cartSize' => Image::getSize(ImageType::getFormattedName('cart')),
'homeSize' => Image::getSize(ImageType::getFormattedName('home')),
'is_catalog' => (bool) Configuration::isCatalogMode(),
'show_prices' => (bool) Configuration::showPrices(),
'ps_version_17' => $this->ps_version_17,
'ps_version_8' => $this->ps_version_8
));
if ($display_layout == 0) {
return $this->display(__FILE__, 'hookDisplayProductTabContent.tpl');
} else {
return $this->display(__FILE__, 'hookDisplayProductTabContentGrid.tpl');
}
}
}
public function hookDisplayProductTab($params)
{
$placement = Configuration::get('PD_PAL_PLACEMENT');
if ($placement == 1) {
$context = Context::getContext();
$cart = new Cart((int)$context->cart->id);
$product = $this->context->controller->getProduct();
$this->context->smarty->assign(array(
'ps_version_15' => $this->ps_version_15,
'ps_version_16' => $this->ps_version_16,
'ps_version_17' => $this->ps_version_17
));
return $this->display(__FILE__, 'hookDisplayProductTab.tpl');
}
}
public function hookDisplayFooterProduct($params)
{
$placement = Configuration::get('PD_PAL_PLACEMENT');
$display_layout = Configuration::get('PD_PAL_DISPLAY_LAYOUT');
if ($placement == 2) {
$id_lang = (int)$this->context->language->id;
$id_shop = (int)$this->context->shop->id;
$product = $this->context->controller->getProduct();
$product_combinations = $this->getAttributeCombinations($product->id, $id_lang, $id_shop);
//dump($product_combinations);
$this->context->smarty->assign(array(
'product_combinations' => $product_combinations,
'block_heading'=> Configuration::get('PD_PAL_DISPLAY_B_HEADING'),
'cartSize' => Image::getSize(ImageType::getFormattedName('cart')),
'homeSize' => Image::getSize(ImageType::getFormattedName('home')),
'is_catalog' => (bool) Configuration::isCatalogMode(),
'show_prices' => (bool) Configuration::showPrices(),
'ps_version_17' => $this->ps_version_17,
'ps_version_8' => $this->ps_version_8
));
if ($display_layout == 0) {
return $this->display(__FILE__, 'hookDisplayProductTabContent.tpl');
} else {
return $this->display(__FILE__, 'hookDisplayProductTabContentGrid.tpl');
}
}
}
public function hookDisplayCustomAttributesListTable($params)
{
$id_product = (int)$params['product']->id;
$product = new Product($id_product);
$id_lang = (int)$this->context->language->id;
$id_shop = (int)$this->context->shop->id;
$product_combinations = $this->getAttributeCombinations($id_product, $id_lang, $id_shop);
$this->context->smarty->assign(array(
'product_combinations' => $product_combinations,
'block_heading'=> Configuration::get('PD_PAL_DISPLAY_B_HEADING'),
'cartSize' => Image::getSize(ImageType::getFormattedName('cart')),
'homeSize' => Image::getSize(ImageType::getFormattedName('home')),
'is_catalog' => (bool) Configuration::isCatalogMode(),
'show_prices' => (bool) Configuration::showPrices(),
'ps_version_17' => $this->ps_version_17,
'ps_version_8' => $this->ps_version_8
));
return $this->display(__FILE__, 'hookDisplayCustomAttributesListTable.tpl');
}
private function getAttributeCombinations($id_product, $id_lang, $id_shop)
{
$sql = 'SELECT pa.`id_product_attribute`, pa.`id_product`, pa.`reference`, pa.`ean13`, pa.`mpn`, pas.`weight` as weight_impact, p.`weight` as weight_base, pa.`minimal_quantity`,
ag.`id_attribute_group`, ag.`is_color_group`, agl.`public_name` AS group_name, al.`name` AS attribute_name, al.`name` AS attribute_name_html,
a.`id_attribute`, a.`color`
FROM `'._DB_PREFIX_.'product_attribute` pa
INNER JOIN `'._DB_PREFIX_.'product_attribute_shop` pas ON (pas.id_product_attribute = pa.id_product_attribute AND pas.id_shop = '.(int)$id_shop.')
LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute`
LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute` = pac.`id_attribute`
LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group`
LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.')
LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = '.(int)$id_lang.')
LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.`id_product` = '.(int)$id_product.')
WHERE pa.`id_product` = '.(int)$id_product.'
ORDER BY pa.`id_product_attribute`';
$results = Db::getInstance()->ExecuteS($sql);
$return = array();
$product = new Product($id_product, false, $id_lang, $id_shop);
$context = Context::getContext();
$specific_price_output = null;
$only_in_stock = Configuration::get('PD_PAL_ONLY_IN_STOCK');
if (is_array($results) && count($results) > 1) {
foreach ($results as $k => $r) {
if (!isset($return[$r['id_product_attribute']]['attribute_name'])) {
$return[$r['id_product_attribute']]['attribute_name'] = '';
}
if (!isset($return[$r['id_product_attribute']]['attribute_name_html'])) {
$return[$r['id_product_attribute']]['attribute_name_html'] = '';
}
$return[$r['id_product_attribute']]['id_attribute'] = $r['id_attribute'];
$return[$r['id_product_attribute']]['color'] = $r['color'];
$return[$r['id_product_attribute']]['id_product'] = $id_product;
$return[$r['id_product_attribute']]['id_product_attribute'] = $r['id_product_attribute'];
$return[$r['id_product_attribute']]['attribute_name'] .= rtrim(Tools::ucfirst($r['group_name']).': '.Tools::ucfirst($r['attribute_name']).', ', ',');
$return[$r['id_product_attribute']]['attribute_name_html'] .= $r['group_name'].': <b>'.$r['attribute_name'].'</b><br />';
$return[$r['id_product_attribute']]['reference'] = $r['reference'] ? $r['reference'] : '';
$return[$r['id_product_attribute']]['ean13'] = $r['ean13'] ? $r['ean13'] : '';
$return[$r['id_product_attribute']]['mpn'] = $r['mpn'] ? $r['mpn'] : '';
$return[$r['id_product_attribute']]['minimal_quantity'] = $r['minimal_quantity'];
$return[$r['id_product_attribute']]['price'] = Product::getPriceStatic(
(int)$id_product,
true,
(int)$r['id_product_attribute'],
2,
null,
false,
true,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
);
$return[$r['id_product_attribute']]['price_tax_excl'] = Product::getPriceStatic(
(int)$id_product,
false,
(int)$r['id_product_attribute'],
2,
null,
false,
true,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
);
$return[$r['id_product_attribute']]['price_old'] = Product::getPriceStatic(
(int)$id_product,
true,
(int)$r['id_product_attribute'],
2,
null,
false,
false,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
);
$return[$r['id_product_attribute']]['price_old_tax_excl'] = Product::getPriceStatic(
(int)$id_product,
false,
(int)$r['id_product_attribute'],
2,
null,
false,
false,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
);
$return[$r['id_product_attribute']]['quantity'] = StockAvailable::getQuantityAvailableByProduct($id_product, (int)$r['id_product_attribute'], $id_shop);
$return[$r['id_product_attribute']]['images'] = Image::getBestImageAttribute($id_shop, $id_lang, $id_product, (int)$r['id_product_attribute']);
if ((!isset($return[$r['id_product_attribute']]['color']) && Tools::isEmpty($return[$r['id_product_attribute']]['color'])) && (file_exists(_PS_COL_IMG_DIR_.$r['id_attribute'].'.jpg'))) {
$return[$r['id_product_attribute']]['color_texture_link'] = _THEME_COL_DIR_.$r['id_attribute'].'.jpg';
} else {
$return[$r['id_product_attribute']]['color_texture_link'] = '';
}
$return[$r['id_product_attribute']]['combination_link'] = $context->link->getProductLink(
$product,
$product->link_rewrite,
null,
null,
$context->language->id,
$context->shop->id,
$r['id_product_attribute']
);
}
foreach ($return as &$r) {
$r['product_name'] = $product->name;
$r['attribute_name'] = rtrim($r['attribute_name'], ', ');
$r['name'] = rtrim((string)$r['attribute_name'], ', ');
// if ($only_in_stock && $return[$r['id_product_attribute']]['quantity'] <= 0) {
// unset($r['id_product_attribute']);
// }
$images = Image::getImages($id_lang, $id_product, $r['id_product_attribute'], $id_shop);
if (!$images) {
$images = Image::getImages($id_lang, $id_product, null, $id_shop);
}
foreach ($images as &$i) {
$i['large_default'] = $context->link->getImageLink($product->link_rewrite, $i['id_image'], 'large_default');
$i['home_default'] = $context->link->getImageLink($product->link_rewrite, $i['id_image'], 'home_default');
}
$r['images'] = $images;
}
} else {
$images = Image::getImages($id_lang, $id_product, null, $id_shop);
foreach ($images as &$i) {
$i['large_default'] = $context->link->getImageLink($product->link_rewrite, $i['id_image'], 'large_default');
$i['home_default'] = $context->link->getImageLink($product->link_rewrite, $i['id_image'], 'home_default');
}
$return[0] = [
'product_name' => $product->name,
'name' => $product->name,
'attribute_name' => $this->l('--'),
'attribute_name_html' => $this->l('--'),
'images' => $images,
'reference' => $product->reference,
'ean13' => $product->ean13,
'mpn' => $product->mpn,
'id_product' => $product->id,
'id_product_attribute' => 0,
'minimal_quantity' => '',
'price' => Product::getPriceStatic(
(int)$id_product,
true,
0,
2,
null,
false,
true,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
),
'price_tax_excl' => Product::getPriceStatic(
(int)$id_product,
false,
0,
2,
null,
false,
true,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
),
'price_old' => Product::getPriceStatic(
(int)$id_product,
true,
0,
2,
null,
false,
false,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
),
'price_old_tax_excl' => Product::getPriceStatic(
(int)$id_product,
false,
0,
2,
null,
false,
false,
1,
false,
null,
null,
null,
$specific_price_output,
true,
true,
$context,
true
),
'quantity' => StockAvailable::getQuantityAvailableByProduct($id_product, 0, $id_shop),
];
}
return $return;
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 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 <contact@prestashop.com>
* @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;

View File

@@ -0,0 +1,72 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_2eccf10a3643e0db7f111705609f7ab6'] = 'Lista kombinacji produktów na stronie produktu';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_c801edf1b84910db5a2042cf354b971e'] = 'Lista kombinacji produktów na stronie produktu w tab-ie lub w stopce produktu lub własnym zaczepieniu';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_0cc39f9a63392ad0ed1f9a14931938b6'] = 'Konfiguracja';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_43d5eb629ea9c3a6188fa8fbd41484b1'] = 'Wyświetla nagłówek bloku';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_d658f671afaa30c65d2678a4396e7ae0'] = 'Pozwala na ukrycie / pokazanie nagłówku bloku';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_93cba07454f06a4a960172bbd6e2a435'] = 'Tak';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Nie';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_0e1665f5f9e5978cd6bd8e9d6f5166d7'] = 'Układ listy kombinacji';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_b32a74568240db4f2b2829b023076262'] = 'Układ wyświetlania listy kombinacji';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_51c45b795d5d18a3e4e0c37e8b20a141'] = 'Tabela';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_5174d1309f275ba6f275db3af9eb3e18'] = 'Siatka';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_33e3fc207368e302cf4e11c74f9eff2b'] = 'Pozycja bloku';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_40e9261a029b34c7bffb50b059739c80'] = 'Pozwala na wybranie pozycji / zaczepienia dla tabeli atrybutów';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_7aa6f8d4a5f7d0594ec377aff6814bde'] = 'Własna pozycja (displayCustomAttributesListTable)';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_0f527c701a8caf14340f875eeaaab008'] = 'Zakładka produktu';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_dac63d85b16cd61aabf6019497f4eb7f'] = 'Stopka produktu';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_d4dccb8ca2dac4e53c01bd9954755332'] = 'Zapisz ustawienia';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_4f14581ed633ed8667521b12404352bc'] = 'Instruckcje dodania hoka do list produktów w (np. w widoku listy a nie siatki)';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_9d515c34e23f29db032f6a49f3af0314'] = 'Prosimy otworzyć plik tpl szablonu';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_ebda28ff7068afb82969740d6b6719a5'] = 'do edycji w miejscu w których chcemy wyświetlić tabele kombinacji atrybutów dodać poniższa linię kodu:';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_c888438d14855d7d96a2724ee9c306bd'] = 'Zapisano ustawienia';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_1e54bff63483b64a42bddfbddb457992'] = 'został dodany!';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_902b0d55fddef6f8d651fe1035b7d4bd'] = 'Błąd dodawania';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_505a83f220c02df2f85c3810cd9ceb38'] = 'Poprawne dodanie';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_dc6c32f4320d95f02c77e4fc7b7ea6e5'] = 'szt.';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_ed96f783e467cc984e4945063760e2c4'] = 'Produkt';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_346d0eb68963ba33595489c7293b6541'] = 'w wariancie:';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_f80e6243f8f08cf482ed0bb6c98d1366'] = 'maksymalna ilość dostępna:';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_713cc13df92272edf0a484f1259698e3'] = 'Nie wybrano żadnej ilości produktów!';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_0c5de1f9de238ec26b6a26a2ba3488a6'] = 'Inne warianty produktu';
$_MODULE['<{pdproductattributeslist}prestashop>pdproductattributeslist_cfab1ba8c67c7c838db98d666f02a132'] = '--';
$_MODULE['<{pdproductattributeslist}prestashop>ajax_52416f6d393744fcb0f4f89ae0984077'] = 'Brak wariantu';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_0c5de1f9de238ec26b6a26a2ba3488a6'] = 'Inne warianty produktu';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_be53a0541a6d36f6ecb879fa2c584b08'] = 'Zdjęcie';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_492f18b60811bf85ce118c0c6a1a5c4a'] = 'Wariant';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_9060c986ab8a0f0e6662e6f79ac2d0f9'] = 'Informacje o produkcie';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_77eb276f5dcdf4fbca854e908216f7b2'] = 'Cena (brutto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_e192956d901dff59c35fd2c477ed28d6'] = 'Cena (netto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_dba03ee64be6e500032c6aa0e6621666'] = 'Dostępnych';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_bef7a703b57f594877ee057052345617'] = 'Wybierz ilość';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_11554327412be059a74c4868e210cca9'] = 'Wariant';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_c4c95c36570d5a8834be5e88e2f0f6b2'] = 'Informacje';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_63d5049791d9d79d86e9a108b0a999ca'] = 'Index';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_462c4392551aed97c4d512e0351aa9b1'] = 'EAN';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_f0a8011e2482cf9351b7bf565c7950ad'] = 'Cena (brutto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_4da86e0470f0b14e4e516442202a8d26'] = 'Cena (netto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_c6281feb3603f7295b43a7c7c871cb9d'] = 'Dostępnych';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_3ecf2642759a04bd3616642bd56bed59'] = 'szt.';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontent_8ee84ed07edaed371d95b76ea08d08a0'] = 'Dodaj wybrane do koszyka';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_0c5de1f9de238ec26b6a26a2ba3488a6'] = 'Wybierz wariant produktu';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_be53a0541a6d36f6ecb879fa2c584b08'] = 'Zdjęcie';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_492f18b60811bf85ce118c0c6a1a5c4a'] = 'Wariant';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_9060c986ab8a0f0e6662e6f79ac2d0f9'] = 'informacje';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_77eb276f5dcdf4fbca854e908216f7b2'] = 'Cena (brutto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_e192956d901dff59c35fd2c477ed28d6'] = 'Cena (netto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_dba03ee64be6e500032c6aa0e6621666'] = 'Dostępnych';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_bef7a703b57f594877ee057052345617'] = 'Wybierz ilość';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_11554327412be059a74c4868e210cca9'] = 'Wariant';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_c4c95c36570d5a8834be5e88e2f0f6b2'] = 'Informacje';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_63d5049791d9d79d86e9a108b0a999ca'] = 'Index';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_462c4392551aed97c4d512e0351aa9b1'] = 'Ean';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_f0a8011e2482cf9351b7bf565c7950ad'] = 'Cena (brutto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_4da86e0470f0b14e4e516442202a8d26'] = 'Cena (netto)';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_c6281feb3603f7295b43a7c7c871cb9d'] = 'Dostępnych';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_3ecf2642759a04bd3616642bd56bed59'] = 'szt.';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplaycustomattributeslisttable_8ee84ed07edaed371d95b76ea08d08a0'] = 'Dodaj wybrane do koszyka';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontentgrid_0c5de1f9de238ec26b6a26a2ba3488a6'] = 'Inny wariant';
$_MODULE['<{pdproductattributeslist}prestashop>hookdisplayproducttabcontentgrid_2d0f6b8300be19cf35e89e66f0677f95'] = 'Do koszyka';

View File

@@ -0,0 +1 @@
.dragtable-sortable{list-style-type:none;margin:0;padding:0;-moz-user-select:none;z-index:10}.dragtable-sortable li{margin:0;padding:0;float:left;font-size:1em}.dragtable-sortable table{margin-top:0}.dragtable-sortable td,.dragtable-sortable th{border-left:0}.dragtable-sortable li:first-child td,.dragtable-sortable li:first-child th{border-left:1px solid #ccc}.ui-sortable-helper{opacity:.7}.ui-sortable-placeholder{-moz-box-shadow:4px 5px 4px rgba(0,0,0,.2) inset;-webkit-box-shadow:4px 5px 4px rgba(0,0,0,.2) inset;box-shadow:4px 5px 4px rgba(0,0,0,.2) inset;border-bottom:1px solid rgba(0,0,0,.2);border-top:1px solid rgba(0,0,0,.2);visibility:visible!important;background:#efefef}.ui-sortable-placeholder *{opacity:0;visibility:hidden}.table-handle,.table-handle-disabled{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjEzIj48cmVjdCBzdHlsZT0iZmlsbDojMzMzO2ZpbGwtb3BhY2l0eTouODsiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjEiIHk9IjIiLz4JPHJlY3Qgc3R5bGU9ImZpbGw6IzMzMztmaWxsLW9wYWNpdHk6Ljg7IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4PSIxIiB5PSI0Ii8+CTxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iNiIvPjxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iOCIvPjxyZWN0IHN0eWxlPSJmaWxsOiMzMzM7ZmlsbC1vcGFjaXR5Oi44OyIgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMSIgeT0iMTAiLz48L3N2Zz4=);background-repeat:repeat-x;height:13px;margin:0 1px;cursor:move}.table-handle-disabled{opacity:0;cursor:not-allowed}.dragtable-sortable table{margin-bottom:0}

View File

@@ -0,0 +1 @@
.tablesorter .tablesorter-filter-row td{text-align:center;font-size:.9em;font-weight:400}.tablesorter .ui-slider,.tablesorter input.range{width:90%;margin:2px auto 2px auto;font-size:.8em}.tablesorter .ui-slider{top:12px}.tablesorter .ui-slider .ui-slider-handle{width:.9em;height:.9em}.tablesorter .ui-datepicker{font-size:.8em}.tablesorter .ui-slider-horizontal{height:.5em}.tablesorter .value-popup:after{content:attr(data-value);position:absolute;bottom:14px;left:-7px;min-width:18px;height:12px;background-color:#444;background-image:-webkit-gradient(linear,left top,left bottom,from(#444),to(#999));background-image:-webkit-linear-gradient(top,#444,#999);background-image:-moz-linear-gradient(top,#444,#999);background-image:-o-linear-gradient(top,#444,#999);background-image:linear-gradient(to bottom,#444,#999);-webkit-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-box-shadow:0 0 4px 0 #777;box-shadow:0 0 4px 0 #777;border:#444 1px solid;color:#fff;font:1em/1.1em Arial,Sans-Serif;padding:1px;text-align:center}.tablesorter .value-popup:before{content:"";position:absolute;width:0;height:0;border-top:8px solid #777;border-left:8px solid transparent;border-right:8px solid transparent;top:-8px;left:50%;margin-left:-8px;margin-top:-1px}.tablesorter .dateFrom,.tablesorter .dateTo{width:80px;margin:2px 5px}.tablesorter .button{width:14px;height:14px;background:#fcfff4;background:-webkit-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:-moz-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:-o-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:-ms-linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);background:linear-gradient(top,#fcfff4 0,#dfe5d7 40%,#b3bead 100%);margin:1px 5px 1px 1px;-webkit-border-radius:25px;-moz-border-radius:25px;border-radius:25px;-webkit-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);-moz-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);position:relative;top:3px;display:inline-block}.tablesorter .button label{cursor:pointer;position:absolute;width:10px;height:10px;-webkit-border-radius:25px;-moz-border-radius:25px;border-radius:25px;left:2px;top:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5),0 1px 0 #fff;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.5),0 1px 0 #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.5),0 1px 0 #fff;background:#45484d;background:-webkit-linear-gradient(top,#222 0,#45484d 100%);background:-moz-linear-gradient(top,#222 0,#45484d 100%);background:-o-linear-gradient(top,#222 0,#45484d 100%);background:-ms-linear-gradient(top,#222 0,#45484d 100%);background:linear-gradient(top,#222 0,#45484d 100%)}.tablesorter .button label:after{opacity:0;content:'';position:absolute;width:8px;height:8px;background:#55f;background:-webkit-linear-gradient(top,#aaf 0,#55f 100%);background:-moz-linear-gradient(top,#aaf 0,#55f 100%);background:-o-linear-gradient(top,#aaf 0,#55f 100%);background:-ms-linear-gradient(top,#aaf 0,#55f 100%);background:linear-gradient(top,#aaf 0,#55f 100%);-webkit-border-radius:25px;-moz-border-radius:25px;border-radius:25px;top:1px;left:1px;-webkit-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);-moz-box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px #fff,0 1px 3px rgba(0,0,0,.5)}.tablesorter .button label:hover::after{opacity:.3}.tablesorter .button input[type=checkbox]{visibility:hidden}.tablesorter .button input[type=checkbox]:checked+label:after{opacity:1}.tablesorter .colorpicker{width:30px;height:18px}.tablesorter .ui-spinner-input{width:100px;height:18px}.tablesorter .currentColor,.tablesorter .ui-spinner{position:relative}.tablesorter input.number{position:relative}.tablesorter .tablesorter-filter-row.hideme td *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0}

View File

@@ -0,0 +1 @@
table.focus-highlight td:before,table.hover-highlight td:before{background:#fff}.focus-highlight .odd td:before,.focus-highlight .odd th:before,.hover-highlight .odd td:before,.hover-highlight .odd th:before{background:#ebf2fa}.focus-highlight .even td:before,.focus-highlight .even th:before,.hover-highlight .even td:before,.hover-highlight .even th:before{background-color:#fff}.focus-highlight td:focus::before,.focus-highlight th:focus::before{background-color:#add8e6}.focus-highlight td:focus::after,.focus-highlight th:focus::after{background-color:#add8e6}.focus-highlight .even td:focus,.focus-highlight .even th:focus,.focus-highlight .odd td:focus,.focus-highlight .odd th:focus,.focus-highlight td:focus,.focus-highlight th:focus{background-color:#d9d9d9;color:#333}table.hover-highlight tbody>tr.even:hover>td,table.hover-highlight tbody>tr.odd:hover>td,table.hover-highlight tbody>tr:hover>td{background-color:#ffa}.hover-highlight tbody tr td:hover::after,.hover-highlight tbody tr th:hover::after{background-color:#ffa}.focus-highlight td:focus::after,.focus-highlight th:focus::after,.hover-highlight td:hover::after,.hover-highlight th:hover::after{content:'';position:absolute;width:100%;height:999em;left:0;top:-555em;z-index:-1}.focus-highlight td:focus::before,.focus-highlight th:focus::before{content:'';position:absolute;width:999em;height:100%;left:-555em;top:0;z-index:-2}.focus-highlight,.hover-highlight{overflow:hidden}.focus-highlight td,.focus-highlight th,.hover-highlight td,.hover-highlight th{position:relative;outline:0}table.focus-highlight,table.focus-highlight tbody tr.even>td,table.focus-highlight tbody tr.even>th,table.focus-highlight tbody tr.odd>td,table.focus-highlight tbody tr.odd>th,table.focus-highlight tbody>tr>td,table.hover-highlight,table.hover-highlight tbody tr.even>td,table.hover-highlight tbody tr.even>th,table.hover-highlight tbody tr.odd>td,table.hover-highlight tbody tr.odd>th,table.hover-highlight tbody>tr>td{background:0 0}table.focus-highlight td:before,table.hover-highlight td:before{content:'';position:absolute;width:100%;height:100%;left:0;top:0;z-index:-3}

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="2" height="13">
<rect style="fill:#333;fill-opacity:.8;" width="1" height="1" x="1" y="2"/>
<rect style="fill:#333;fill-opacity:.8;" width="1" height="1" x="1" y="4"/>
<rect style="fill:#333;fill-opacity:.8;" width="1" height="1" x="1" y="6"/>
<rect style="fill:#333;fill-opacity:.8;" width="1" height="1" x="1" y="8"/>
<rect style="fill:#333;fill-opacity:.8;" width="1" height="1" x="1" y="10"/>
</svg>

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

View File

@@ -0,0 +1,35 @@
<?php
/*
* 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 <contact@prestashop.com>
* @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;

View File

@@ -0,0 +1 @@
.tablesorter-pager{padding:5px}td.tablesorter-pager{background-color:#e6eeee;margin:0}.tablesorter-pager img{vertical-align:middle;margin-right:2px;cursor:pointer}.tablesorter-pager .pagedisplay{padding:0 5px 0 5px;width:auto;white-space:nowrap;text-align:center}.tablesorter-pager select{margin:0;padding:0}.tablesorter-pager.disabled{display:none}.tablesorter-pager .disabled{opacity:.5;cursor:default}

View File

@@ -0,0 +1,328 @@
/* Tablesorter Custom Bootstrap v3 LESS Theme by Rob Garrison
To create your own theme, modify the code below and run it through
a LESS compiler, like this one: http://leafo.net/lessphp/editor.html
or download less.js from http://lesscss.org/
Test out these customization files live
Basic LESS Theme : http://codepen.io/Mottie/pen/eqBbn
Bootstrap LESS : http://codepen.io/Mottie/pen/Ltzpi
Metro LESS Style : http://codepen.io/Mottie/pen/gCslk
Basic SCSS : http://codepen.io/Mottie/pen/LbXdNR
*/
/*** theme ***/
@theme : tablesorter-bootstrap;
/*** fonts ***/
@tableHeaderFont : 14px bold Arial, Sans-serif;
@tableBodyFont : 14px "Helvetica Neue", Helvetica, Arial, sans-serif;
/*** color definitions ***/
/* for best results, only change the hue (240),
leave the saturation (60%) and luminosity (80%) alone
pick the color from here: http://hslpicker.com/#99E699 */
@headerBackground : hsl(240, 60%, 80%);
@borderAndBackground : #cdcdcd;
@overallBorder : @borderAndBackground 1px solid;
@headerTextColor : #000;
@bodyBackground : #fff;
@bodyTextColor : #000;
@headerAsc : darken(spin(@headerBackground, 5), 10%); /* darken(@headerBackground, 10%); */
@headerDesc : lighten(spin(@headerBackground, -5), 10%); /* desaturate(@headerAsc, 5%); */
@captionBackground : #fff; /* it might be best to match the document body background color here */
@errorBackground : #e6bf99; /* ajax error message (added to thead) */
@filterCellBackground : #eee;
@filterElementTextColor: #333;
@filterElementBkgd : #fff;
@filterElementBorder : 1px solid #bbb;
@filterTransitionTime : 0.1s;
@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */
@overallPadding : 4px;
/* 20px should be slightly wider than the icon width to avoid overlap */
@headerPadding : 4px 20px 4px 4px;
@headerMargin : 0 0 18px;
/* url(icons/loading.gif); */
@processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=');
/* zebra striping */
.allRows {
background-color: @bodyBackground;
color: @bodyTextColor;
}
.evenRows {
background-color: lighten(@headerBackground, 35%);
}
.oddRows {
background-color: lighten(@headerBackground, 18%);
}
/* hovered rows */
.oddHovered {
background-color: desaturate(@headerBackground, 60%);
}
.evenHovered {
background-color: lighten( desaturate(@headerBackground, 60%), 10% );
}
/* Columns widget */
@primaryOdd : spin(@headerBackground, 10); /* saturate( darken( desaturate(@headerBackground, 10%), 10% ), 30%); */
@primaryEven : lighten( @primaryOdd, 10% );
@secondaryOdd : @primaryEven;
@secondaryEven : lighten( @primaryEven, 5% );
@tertiaryOdd : @secondaryEven;
@tertiaryEven : lighten( @secondaryEven, 5% );
/* Filter widget transition */
.filterWidgetTransition {
-webkit-transition: line-height @filterTransitionTime ease;
-moz-transition: line-height @filterTransitionTime ease;
-o-transition: line-height @filterTransitionTime ease;
transition: line-height @filterTransitionTime ease;
}
/*** icon block ***/
.iconPosition {
font-size: 11px;
position: absolute;
right: 2px;
top: 50%;
margin-top: -7px; /* half the icon height; older IE doesn't like this */
width: 14px;
height: 14px;
background-repeat: no-repeat;
line-height: 14px;
}
/* black */
@unsortedBlack : url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAA20lEQVR4AWJABpKSkoxALCstLb0aUAsZaCAMhVEY6B0amx8YZWDDEDSBa2AGe7XeIiAAClYwVGBvsAcIllsf/mvcC9DgOOd8h90fxWvngVEUbZIkuWRZZlE8eQjcisgZMM9zi+LJ6ZfwegmWZflZDugdHMfxTcGqql7TNBlUB/QObtv2VBSFrev6OY7jngzFk9OT/fn73fWYpqnlXNyXDMWT0zuYx/Bvel9ej+LJ6R08DMOu67q7DkTkrSA5vYPneV71fX/QASdTkJwezhs0TfMARn0wMDDGXEPgF4oijqwM5YjNAAAAAElFTkSuQmCC);
/* white */
@unsortedWhite : url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAe0lEQVR4AbXQoRWDMBiF0Sh2QLAAQ8SxJGugWSA6A2STW1PxTsnB9cnkfuYvv8OGC1t5G3Y0QMP+Bm857keAdQIzWBP3+Bw4MADQE18B6/etRnCV/w9nnGuLezfAmXhABGtAGIkruvk6auIFRwQJDywllsEAjCecB20GP59BQQ+gtlRLAAAAAElFTkSuQmCC);
/* automatically choose the correct arrow/text color */
.headerText (@a) when (lightness(@a) >= 50%) {
color: @headerTextColor;
}
.headerText (@a) when (lightness(@a) < 50%) {
color: lighten(@headerTextColor, 90%);
}
.unsorted (@a) when (lightness(@a) >= 50%) {
background-image: @unsortedBlack;
color: @headerTextColor;
}
.unsorted (@a) when (lightness(@a) < 50%) {
background-image: @unsortedWhite;
color: lighten(@headerTextColor, 90%);
}
/* variable theme name - requires less.js 1.3+;
or just replace (!".@{theme}") with the contents of @theme
*/
.@{theme} {
font: @tableBodyFont;
background-color: @borderAndBackground;
width: 100%;
/* style th's outside of the thead */
th, thead td {
font: @tableHeaderFont;
font-weight: bold;
background-color: @headerBackground;
.headerText(@headerBackground);
border-collapse: collapse;
margin: @headerMargin;
padding: @overallPadding;
}
tbody td, tfoot th, tfoot td {
padding: @overallPadding;
vertical-align: top;
}
/* style header */
.tablesorter-header {
cursor: pointer;
}
.tablesorter-header-inner {
position: relative;
padding: @headerPadding;
}
/* bootstrap uses <i> for icons */
.tablesorter-header-inner i.tablesorter-icon {
.iconPosition
}
.tablesorter-header.sorter-false {
cursor: default;
i.tablesorter-icon {
display: none;
}
.tablesorter-header-inner {
padding: @overallPadding;
}
}
.tablesorter-headerAsc {
background-color: @headerAsc;
}
.tablesorter-headerDesc {
background-color: @headerDesc;
}
.bootstrap-icon-unsorted {
.unsorted(@headerBackground);
}
/* tfoot */
tfoot .tablesorter-headerAsc,
tfoot .tablesorter-headerDesc {
/* remove sort arrows from footer */
background-image: none;
}
/* optional disabled input styling */
.disabled {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: not-allowed;
}
/* body */
tbody {
td {
.allRows;
padding: @overallPadding;
vertical-align: top;
}
/* Zebra Widget - row alternating colors */
tr.odd > td {
.oddRows;
}
tr.even > td {
.evenRows;
}
}
/* hovered row colors
you'll need to add additional lines for
rows with more than 2 child rows
*/
tbody > tr.hover > td,
tbody > tr:hover > td,
tbody > tr:hover + tr.tablesorter-childRow > td,
tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td,
tbody > tr.even.hover > td,
tbody > tr.even:hover > td,
tbody > tr.even:hover + tr.tablesorter-childRow > td,
tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
.evenHovered;
}
tbody > tr.odd.hover > td,
tbody > tr.odd:hover > td,
tbody > tr.odd:hover + tr.tablesorter-childRow > td,
tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
.oddHovered;
}
/* table processing indicator - indeterminate spinner */
.tablesorter-processing {
background-image: @processingIcon;
background-position: center center;
background-repeat: no-repeat;
}
/* Column Widget - column sort colors */
tr.odd td.primary {
background-color: @primaryOdd;
}
td.primary, tr.even td.primary {
background-color: @primaryEven;
}
tr.odd td.secondary {
background-color: @secondaryOdd;
}
td.secondary, tr.even td.secondary {
background-color: @secondaryEven;
}
tr.odd td.tertiary {
background-color: @tertiaryOdd;
}
td.tertiary, tr.even td.tertiary {
background-color: @tertiaryEven;
}
/* caption (non-theme matching) */
caption {
background-color: @captionBackground ;
}
/* filter widget */
.tablesorter-filter-row input,
.tablesorter-filter-row select{
width: 98%;
margin: 0;
padding: @overallPadding;
color: @filterElementTextColor;
background-color: @filterElementBkgd;
border: @filterElementBorder;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
.filterWidgetTransition;
}
.tablesorter-filter-row {
background-color: @filterCellBackground;
}
.tablesorter-filter-row td {
text-align: center;
background-color: @filterCellBackground;
line-height: normal;
text-align: center; /* center the input */
.filterWidgetTransition;
}
/* hidden filter row */
.tablesorter-filter-row.hideme td {
padding: @filterRowHiddenHeight / 2;
margin: 0;
line-height: 0;
cursor: pointer;
}
.tablesorter-filter-row.hideme * {
height: 1px;
min-height: 0;
border: 0;
padding: 0;
margin: 0;
/* don't use visibility: hidden because it disables tabbing */
opacity: 0;
filter: alpha(opacity=0);
}
/* rows hidden by filtering (needed for child rows) */
.filtered {
display: none;
}
/* ajax error row */
.tablesorter-errorRow td {
text-align: center;
cursor: pointer;
background-color: @errorBackground;
}
}

View File

@@ -0,0 +1,357 @@
/* Tablesorter Custom Metro LESS Theme by Rob Garrison
To create your own theme, modify the code below and run it through
a LESS compiler, like this one: http://leafo.net/lessphp/editor.html
or download less.js from http://lesscss.org/
Test out these customization files live
Basic LESS Theme : http://codepen.io/Mottie/pen/eqBbn
Bootstrap LESS : http://codepen.io/Mottie/pen/Ltzpi
Metro LESS Style : http://codepen.io/Mottie/pen/gCslk
Basic SCSS : http://codepen.io/Mottie/pen/LbXdNR
*/
/*** theme ***/
@theme : tablesorter-metro;
/*** fonts ***/
@tableHeaderFont : 14px 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
@tableBodyFont : 14px 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
/*** color definitions ***/
/* for best results, only change the hue (120),
leave the saturation (60%) and luminosity (75%) alone
pick the color from here: http://hslpicker.com/#825a2b
Inspired by http://www.jtable.org/ metro themes:
Blue: hsl(212, 86%, 35%)
Brown hsl(32, 50%, 30%)
Crimson hsl(0, 100%, 38%)
Dark Grey hsl(0, 0%, 27%)
Dark Orange hsl(13, 70%, 51%)
Green hsl(120, 100%, 32%)
Light Gray hsl(0, 0%, 44%)
Pink hsl(297, 100%, 33%)
Purple hsl(257, 51%, 48%)
Red hsl(5, 100%, 40%)
*/
@headerBackground : hsl(32, 50%, 30%);
@borderAndBackground : #cdcdcd;
@headerTextColor : #eee;
@bodyBackground : #fff;
@bodyTextColor : #000;
@captionBackground : #fff; /* it might be best to match the document body background color here */
@errorBackground : #e6bf99; /* ajax error message (added to thead) */
@filterCellBackground : #eee;
@filterElementTextColor: #333;
@filterElementBkgd : #fff;
@filterElementBorder : 1px solid #bbb;
@filterTransitionTime : 0.1s;
@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */
@overallPadding : 4px;
/* 20px should be slightly wider than the icon width to avoid overlap */
@headerPadding : 4px 20px 4px 4px;
/* url(icons/loading.gif); */
@processingIcon : url('data:image/gif;base64,R0lGODlhEAAQAPIAAP///1VVVdbW1oCAgFVVVZaWlqurq7a2tiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==');
/* zebra striping */
.allRows {
background-color: @bodyBackground;
color: @bodyTextColor;
}
.evenRows {
background-color: lighten( desaturate(@headerBackground, 80%), 70%);
color: @bodyTextColor;
}
.oddRows {
background-color: lighten( desaturate(@headerBackground, 80%), 50%);
}
/* hovered rows */
.oddHovered {
background-color: lighten( desaturate(@headerBackground, 50%), 40%);
color: @bodyTextColor;
}
.evenHovered {
background-color: lighten( desaturate(@headerBackground, 50%), 30%);
color: @bodyTextColor;
}
/* Columns widget */
@primaryOdd : lighten( spin(@headerBackground, 10), 40%);
@primaryEven : lighten( @primaryOdd, 8% );
@secondaryOdd : @primaryEven;
@secondaryEven : lighten( @primaryEven, 8% );
@tertiaryOdd : @secondaryEven;
@tertiaryEven : lighten( @secondaryEven, 8% );
/* Filter widget transition */
.filterWidgetTransition {
-webkit-transition: line-height @filterTransitionTime ease;
-moz-transition: line-height @filterTransitionTime ease;
-o-transition: line-height @filterTransitionTime ease;
transition: line-height @filterTransitionTime ease;
}
/*** Arrows ***/
@arrowPosition : right 5px center;
/* black */
@unsortedBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC);
@sortAscBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAACnRSTlMAMwsqXt+gIBUGxGoDMAAAAFlJREFUCNctzC0SQAAUReEzGNQ3AlHRiSRZFCVZYgeswRL8hLdK7834wj3tAlGP6y7fYHpKS6w6WwbVG0I1NZVnZPG8/DYxOYlnhUYkA06R1s9ESsxR4NIdPhkPFDFYuEnMAAAAAElFTkSuQmCC);
@sortDescBlack : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAALVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBoCg+AAAADnRSTlMAMiweCQITTvDctZZqaTlM310AAABcSURBVAjXY2BgYEtgAAFHERDJqigUAKSYBQUNgFSioKAYAwOLIBA4MASBKFUGQxAlzAAF+94BwWuGKBC1lIFl3rt3Lx0YGCzevWsGSjK9e6cAUlT3HKyW9wADAwDRrBiDy6bKzwAAAABJRU5ErkJggg==);
/* white */
@unsortedWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAElBMVEUAAADu7u7u7u7u7u7u7u7u7u7yb344AAAABnRSTlMAMhIHKyAHBrhHAAAATElEQVQI12NgYGBSYAABQ2Ew5SgCIlkFBQOAlKKgoBADA7MgEBgwsIAoB4ZAECXKAAFQHkg9WIejoCBIv4mgoDOQYgZpAxkDNARqEQBTkAYuMZEHPgAAAABJRU5ErkJggg==);
@sortAscWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAHlBMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u4+jEeEAAAACXRSTlMAMwkqFV7roCD4hW+/AAAAWUlEQVQI1y3MrQ5AABSG4Xd+Rj0jiDabjKZxB6qqaarGNRh27tY5myd8b/uAeML1l2+wPqUlUd0ss+oNoZqG2rOwe15+p5iC1HNAK5IBlUjnZyIlZsxx0QAfzokSZgp96u4AAAAASUVORK5CYII=);
@sortDescWhite : url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAJ1BMVEUAAADu7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u4RJgHSAAAADHRSTlMAMiweCQITaU7olrlu2HdvAAAAXElEQVQI12NgYGBLYAABRxEQyaooFACkmAUFDYBUoqCgGAMDiyAQODAEgShVBkMQJcwABWvOAMEphmgQtZWBZc6ZMycdGBhszpw5DJRkOnNGAaSo5wRYLXsBAwMAi4YWQHRX4F0AAAAASUVORK5CYII=);
/* automatically choose the correct arrow/text color */
.headerText (@a) when (lightness(@a) >= 50%) {
color: @headerTextColor;
}
.headerText (@a) when (lightness(@a) < 50%) {
color: lighten(@headerTextColor, 90%);
}
.unsorted (@a) when (lightness(@a) >= 50%) {
background-image: @unsortedBlack;
}
.unsorted (@a) when (lightness(@a) < 50%) {
background-image: @unsortedWhite;
}
.sortAsc (@a) when (lightness(@a) >= 50%) {
background-image: @sortAscBlack;
}
.sortAsc (@a) when (lightness(@a) < 50%) {
background-image: @sortAscWhite;
}
.sortDesc (@a) when (lightness(@a) >= 50%) {
background-image: @sortDescBlack;
}
.sortDesc (@a) when (lightness(@a) < 50%) {
background-image: @sortDescWhite;
}
/* variable theme name - requires less.js 1.3+;
or just replace (!".@{theme}") with the contents of @theme
*/
.@{theme} {
font: @tableBodyFont;
background-color: @borderAndBackground;
margin: 10px 0 15px;
width: 100%;
text-align: left;
border-spacing: 0;
border: 0;
th, td {
border: 0;
}
/* style th's outside of the thead */
th, thead td {
font: @tableHeaderFont;
font-weight: bold;
background-color: @headerBackground;
color: @headerTextColor;
.headerText(@headerBackground);
border-collapse: collapse;
padding: @overallPadding;
}
.dark-row th, .dark-row td, caption.dark-row {
background-color: darken( @headerBackground, 10% );
}
tbody td, tfoot th, tfoot td {
padding: @overallPadding;
vertical-align: top;
}
/* style header */
.tablesorter-header {
.unsorted(@headerBackground);
background-repeat: no-repeat;
background-position: @arrowPosition;
cursor: pointer;
white-space: normal;
}
.tablesorter-header-inner {
padding: @headerPadding;
}
.tablesorter-header.sorter-false {
background-image: none;
cursor: default;
padding: @overallPadding;
}
.tablesorter-headerAsc {
.sortAsc(@headerBackground);
}
.tablesorter-headerDesc {
.sortDesc(@headerBackground);
}
/* tfoot */
tfoot .tablesorter-headerAsc,
tfoot .tablesorter-headerDesc {
/* remove sort arrows from footer */
background-image: none;
}
/* optional disabled input styling */
.disabled {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: not-allowed;
}
/* body */
tbody {
td {
.allRows;
padding: @overallPadding;
vertical-align: top;
}
/* Zebra Widget - row alternating colors */
tr.odd > td {
.oddRows;
}
tr.even > td {
.evenRows;
}
}
/* hovered row colors
you'll need to add additional lines for
rows with more than 2 child rows
*/
tbody > tr.hover > td,
tbody > tr:hover > td,
tbody > tr:hover + tr.tablesorter-childRow > td,
tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td,
tbody > tr.even.hover > td,
tbody > tr.even:hover > td,
tbody > tr.even:hover + tr.tablesorter-childRow > td,
tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
.evenHovered;
}
tbody > tr.odd.hover > td,
tbody > tr.odd:hover > td,
tbody > tr.odd:hover + tr.tablesorter-childRow > td,
tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
.oddHovered;
}
/* table processing indicator - indeterminate spinner */
.tablesorter-processing {
background-image: @processingIcon;
background-position: center center;
background-repeat: no-repeat;
}
/* pager */
div.tablesorter-pager {
button {
background-color: lighten( @headerBackground, 7% );
color: @headerTextColor;
border: lighten( @headerBackground, 15% ) 1px solid;
cursor: pointer;
}
button:hover {
background-color: lighten( @headerBackground, 15% );
}
}
/* Column Widget - column sort colors */
tr.odd td.primary {
background-color: @primaryOdd;
}
td.primary, tr.even td.primary {
background-color: @primaryEven;
}
tr.odd td.secondary {
background-color: @secondaryOdd;
}
td.secondary, tr.even td.secondary {
background-color: @secondaryEven;
}
tr.odd td.tertiary {
background-color: @tertiaryOdd;
}
td.tertiary, tr.even td.tertiary {
background-color: @tertiaryEven;
}
/* caption (non-theme matching) */
caption {
background-color: @captionBackground ;
}
/* filter widget */
.tablesorter-filter-row input,
.tablesorter-filter-row select{
width: 98%;
height: auto;
margin: 0;
padding: @overallPadding;
color: @filterElementTextColor;
background-color: @filterElementBkgd;
border: @filterElementBorder;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
.filterWidgetTransition;
}
.tablesorter-filter-row {
background-color: @filterCellBackground;
}
.tablesorter-filter-row td {
text-align: center;
background-color: @filterCellBackground;
line-height: normal;
text-align: center; /* center the input */
.filterWidgetTransition;
}
/* hidden filter row */
.tablesorter-filter-row.hideme td {
padding: @filterRowHiddenHeight / 2;
margin: 0;
line-height: 0;
cursor: pointer;
}
.tablesorter-filter-row.hideme * {
height: 1px;
min-height: 0;
border: 0;
padding: 0;
margin: 0;
/* don't use visibility: hidden because it disables tabbing */
opacity: 0;
filter: alpha(opacity=0);
}
/* rows hidden by filtering (needed for child rows) */
.filtered {
display: none;
}
/* ajax error row */
.tablesorter-errorRow td {
text-align: center;
cursor: pointer;
background-color: @errorBackground;
}
}

View File

@@ -0,0 +1,330 @@
/* Tablesorter Custom LESS Theme by Rob Garrison
To create your own theme, modify the code below and run it through
a LESS compiler, like this one: http://leafo.net/lessphp/editor.html
or download less.js from http://lesscss.org/
Test out these custom less files live
Basic Theme : http://codepen.io/Mottie/pen/eqBbn
Bootstrap : http://codepen.io/Mottie/pen/Ltzpi
Metro Style : http://codepen.io/Mottie/pen/gCslk
Basic SCSS : http://codepen.io/Mottie/pen/LbXdNR
*/
/*** theme ***/
@theme : tablesorter-custom;
/*** fonts ***/
@tableHeaderFont : 11px 'trebuchet ms', verdana, arial;
@tableBodyFont : 11px 'trebuchet ms', verdana, arial;
/*** color definitions ***/
/* for best results, only change the hue (120),
leave the saturation (60%) and luminosity (75%) alone
pick the color from here: http://hslpicker.com/#99E699 */
@headerBackground : hsl(120, 60%, 75%);
@borderAndBackground : #cdcdcd;
@overallBorder : @borderAndBackground 1px solid;
@headerTextColor : #000;
@bodyBackground : #fff;
@bodyTextColor : #000;
@headerAsc : darken(spin(@headerBackground, 5), 10%); /* darken(@headerBackground, 10%); */
@headerDesc : lighten(spin(@headerBackground, -5), 10%); /* desaturate(@headerAsc, 5%); */
@captionBackground : #fff; /* it might be best to match the document body background color here */
@errorBackground : #e6bf99; /* ajax error message (added to thead) */
@filterCellBackground : #eee;
@filterElementTextColor: #333;
@filterElementBkgd : #fff;
@filterElementBorder : 1px solid #bbb;
@filterTransitionTime : 0.1s;
@filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */
@overallPadding : 4px;
/* 20px should be slightly wider than the icon width to avoid overlap */
@headerPadding : 4px 20px 4px 4px;
/* url(icons/loading.gif); */
@processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=');
/* zebra striping */
.allRows {
background-color: @bodyBackground;
color: @bodyTextColor;
}
.evenRows {
background-color: lighten(@headerBackground, 40%);
color: @bodyTextColor;
}
.oddRows {
background-color: lighten(@headerBackground, 20%);
}
/* hovered rows */
.oddHovered {
background-color: desaturate(@headerBackground, 60%);
color: @bodyTextColor;
}
.evenHovered {
background-color: lighten( desaturate(@headerBackground, 60%), 10% );
color: @bodyTextColor;
}
/* Columns widget */
@primaryOdd : spin(@headerBackground, 10); /* saturate( darken( desaturate(@headerBackground, 10%), 10% ), 30%); */
@primaryEven : lighten( @primaryOdd, 10% );
@secondaryOdd : @primaryEven;
@secondaryEven : lighten( @primaryEven, 5% );
@tertiaryOdd : @secondaryEven;
@tertiaryEven : lighten( @secondaryEven, 5% );
/* Filter widget transition */
.filterWidgetTransition {
-webkit-transition: line-height @filterTransitionTime ease;
-moz-transition: line-height @filterTransitionTime ease;
-o-transition: line-height @filterTransitionTime ease;
transition: line-height @filterTransitionTime ease;
}
/*** Arrows ***/
@arrowPosition : right 5px center;
/* black */
@unsortedBlack : url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
@sortAscBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
@sortDescBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* white */
@unsortedWhite : url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
@sortAscWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
@sortDescWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* automatically choose the correct arrow/text color */
.headerText (@a) when (lightness(@a) >= 50%) {
color: @headerTextColor;
}
.headerText (@a) when (lightness(@a) < 50%) {
color: lighten(@headerTextColor, 90%);
}
.unsorted (@a) when (lightness(@a) >= 50%) {
background-image: @unsortedBlack;
}
.unsorted (@a) when (lightness(@a) < 50%) {
background-image: @unsortedWhite;
}
.sortAsc (@a) when (lightness(@a) >= 50%) {
background-image: @sortAscBlack;
}
.sortAsc (@a) when (lightness(@a) < 50%) {
background-image: @sortAscWhite;
}
.sortDesc (@a) when (lightness(@a) >= 50%) {
background-image: @sortDescBlack;
}
.sortDesc (@a) when (lightness(@a) < 50%) {
background-image: @sortDescWhite;
}
/* variable theme name - requires less.js 1.3+;
or just replace (!".@{theme}") with the contents of @theme
*/
.@{theme} {
font: @tableBodyFont;
background-color: @borderAndBackground;
margin: 10px 0 15px;
width: 100%;
text-align: left;
border-spacing: 0;
border: @overallBorder;
border-width: 1px 0 0 1px;
th, td {
border: @overallBorder;
border-width: 0 1px 1px 0;
}
/* style th's outside of the thead */
th, thead td {
font: @tableHeaderFont;
font-weight: bold;
background-color: @headerBackground;
.headerText(@headerBackground);
border-collapse: collapse;
padding: @overallPadding;
}
tbody td, tfoot th, tfoot td {
padding: @overallPadding;
vertical-align: top;
}
/* style header */
.tablesorter-header {
.unsorted(@headerBackground);
background-repeat: no-repeat;
background-position: @arrowPosition;
padding: @headerPadding;
cursor: pointer;
}
.tablesorter-header.sorter-false {
background-image: none;
cursor: default;
padding: @overallPadding;
}
.tablesorter-headerAsc {
background-color: @headerAsc;
.sortAsc(@headerBackground);
}
.tablesorter-headerDesc {
background-color: @headerDesc;
.sortDesc(@headerBackground);
}
/* tfoot */
tfoot .tablesorter-headerAsc,
tfoot .tablesorter-headerDesc {
/* remove sort arrows from footer */
background-image: none;
}
/* optional disabled input styling */
.disabled {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: not-allowed;
}
/* body */
tbody {
td {
.allRows;
padding: @overallPadding;
vertical-align: top;
}
/* Zebra Widget - row alternating colors */
tr.odd > td {
.oddRows;
}
tr.even > td {
.evenRows;
}
}
/* hovered row colors
you'll need to add additional lines for
rows with more than 2 child rows
*/
tbody > tr.hover td,
tbody > tr:hover td,
tbody > tr:hover + tr.tablesorter-childRow > td,
tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td,
tbody > tr.even.hover > td,
tbody > tr.even:hover > td,
tbody > tr.even:hover + tr.tablesorter-childRow > td,
tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
.evenHovered;
}
tbody > tr.odd.hover > td,
tbody > tr.odd:hover > td,
tbody > tr.odd:hover + tr.tablesorter-childRow > td,
tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
.oddHovered;
}
/* table processing indicator - indeterminate spinner */
.tablesorter-processing {
background-image: @processingIcon;
background-position: center center;
background-repeat: no-repeat;
}
/* Column Widget - column sort colors */
tr.odd td.primary {
background-color: @primaryOdd;
}
td.primary, tr.even td.primary {
background-color: @primaryEven;
}
tr.odd td.secondary {
background-color: @secondaryOdd;
}
td.secondary, tr.even td.secondary {
background-color: @secondaryEven;
}
tr.odd td.tertiary {
background-color: @tertiaryOdd;
}
td.tertiary, tr.even td.tertiary {
background-color: @tertiaryEven;
}
/* caption (non-theme matching) */
caption {
background-color: @captionBackground ;
}
/* filter widget */
.tablesorter-filter-row input,
.tablesorter-filter-row select {
width: 98%;
height: auto;
margin: 0;
padding: @overallPadding;
color: @filterElementTextColor;
background-color: @filterElementBkgd;
border: @filterElementBorder;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
.filterWidgetTransition;
}
.tablesorter-filter-row {
background-color: @filterCellBackground;
}
.tablesorter-filter-row td {
text-align: center;
background-color: @filterCellBackground;
line-height: normal;
text-align: center; /* center the input */
.filterWidgetTransition;
}
/* hidden filter row */
.tablesorter-filter-row.hideme td {
padding: @filterRowHiddenHeight / 2;
margin: 0;
line-height: 0;
cursor: pointer;
}
.tablesorter-filter-row.hideme * {
height: 1px;
min-height: 0;
border: 0;
padding: 0;
margin: 0;
/* don't use visibility: hidden because it disables tabbing */
opacity: 0;
filter: alpha(opacity=0);
}
/* rows hidden by filtering (needed for child rows) */
.filtered {
display: none;
}
/* ajax error row */
.tablesorter-errorRow td {
text-align: center;
cursor: pointer;
background-color: @errorBackground;
}
}

View File

@@ -0,0 +1,253 @@
#pdproductattributeslist {
width:100%;
margin-top: 15px;
margin-right: 9px;
margin-left: 9px;
}
#pdproductattributeslist table {}
#pdproductattributeslist input.quantity {
}
#pdproductattributeslist .old_price {
font-size: 12px;
text-decoration: line-through;
display: inline-block;
}
#pdproductattributeslist .price {
font-weight: bold;
}
#pdproductattributeslist .bootstrap-touchspin .input-group-btn-vertical i {
left: 4px;
}
#pdproductattributeslist table td.option_infos .product-title {
text-transform: capitalize;
margin: .5rem 0;
text-align: unset;
}
/** RESPOINSIVE TABLE **/
#pdproductattributeslist td, #pdproductattributeslist th {
vertical-align: middle;
text-align: center;
padding-top: .75rem;
padding-bottom: .75rem;
}
#pdproductattributeslist th {
font-size: 13px;
}
#pdproductattributeslist td img {max-width: 100%;}
#pdproductattributeslist .option_image a.hidden {display:none;}
#pdproductattributeslist th.product_image {width:10%;}
#pdproductattributeslist th.product_infos {}
#pdproductattributeslist th.product_price {width:12%;}
#pdproductattributeslist th.product_variant {width:10%;}
#pdproductattributeslist th.product_qty {width:10%;}
#pdproductattributeslist th.product_btn {width:12%;}
#pdproductattributeslist .footer_actions { background:#ddd; }
#pdproductattributeslist b, #pdproductattributeslist strong {
margin-bottom: 0.3rem;
display: inline-block;
}
#category .product-quantity > .col {
margin-bottom: .0rem;
}
#pdproductattributeslist .option_gty .product-quantity {max-width:200px; }
#pdproductattributeslist .product-quantity .qty {width:100%}
#pdproductattributeslist .add-to-cart-pdproductattributeslist {
width: 100%;
}
#pdproductattributeslist .product-quantity .quantity {
width: 3rem;
height: 2.75rem;
padding: .175rem .5rem;
color: #232323;
background-color: #fff;
}
#pdproductattributeslist .product-quantity .bootstrap-touchspin {
float: unset;
text-align: center;
margin: 0 auto;
}
/*
Max width before this PARTICULAR table gets nasty
This query will take effect for any screen smaller than 760px
and also iPads specifically.
*/
@media
only screen and (max-width: 760px),
(min-device-width: 768px) and (max-device-width: 1024px) {
#pdproductattributeslist table {
width: 100%;
}
/* Force table to not be like tables anymore */
#pdproductattributeslist table,
#pdproductattributeslist thead,
#pdproductattributeslist tbody,
#pdproductattributeslist th,
#pdproductattributeslist td,
#pdproductattributeslist tr {
display: block;
}
/* Hide table headers (but not display: none;, for accessibility) */
#pdproductattributeslist thead tr {
position: absolute;
top: -9999px;
left: -9999px;
}
#pdproductattributeslist tr { border: 1px solid #ccc; }
#pdproductattributeslist td {
/* Behave like a "row" */
border: none;
border-bottom: 1px solid #eee;
position: relative;
padding-left: 50%;
}
#pdproductattributeslist td:before {
/* Now like a table header */
position: absolute;
/* Top/left values mimic padding */
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
/* Label the data */
content: attr(data-column);
color: #000;
font-weight: bold;
text-align: center;
}
}
#pdproductattributeslist .grid .product-description {
height: 120px;
}
#pdproductattributeslist .grid .thumbnail-container {
height: 388px;
}
#pdproductattributeslist .grid .thumbnail-container form {
text-align: center;
margin: 10px 0 10px 0;
}
#pdproductattributeslist .grid .thumbnail-container:hover .highlighted-informations {
bottom: 8.625rem;
}
#pdproductattributeslist .grid .thumbnail-container:hover .highlighted-informations.no-variants {
bottom: 6.375rem;
}
#pdproductattributeslist .grid .add-to-cart-or-refresh {text-align: center;}
#pdproductattributeslist .grid input.qtyfield {
padding: 0 6px;
margin: 0 5px 0 5px;
vertical-align: bottom;
display: inline;
float: unset;
}
#pdproductattributeslist .grid .product-quantity input.qtyfield {
width: 100%;
text-align: center;
height: 48px;
border: 0;
border-radius: 5px;
}
#pdproductattributeslist .grid .product-quantity .qty {
margin-right: 10px;
}
@media (max-width: 768px) {
#pdproductattributeslist .table-responsive {
width: 100%;
margin-bottom: 15px;
overflow-y: hidden;
overflow-x: scroll;
border: 1px solid #d6d4d4; }
#pdproductattributeslist .table-responsive > .table {
margin-bottom: 0;
background-color: #fff; }
#pdproductattributeslist .table-responsive > .table > thead > tr > th,
#pdproductattributeslist .table-responsive > .table > thead > tr > td,
#pdproductattributeslist .table-responsive > .table > tbody > tr > th,
#pdproductattributeslist .table-responsive > .table > tbody > tr > td,
#pdproductattributeslist .table-responsive > .table > tfoot > tr > th,
#pdproductattributeslist .table-responsive > .table > tfoot > tr > td {
white-space: nowrap; }
#pdproductattributeslist .table-responsive > .table-bordered {
border: 0; }
#pdproductattributeslist .table-responsive > .table-bordered > thead > tr > th:first-child,
#pdproductattributeslist .table-responsive > .table-bordered > thead > tr > td:first-child,
#pdproductattributeslist .table-responsive > .table-bordered > tbody > tr > th:first-child,
#pdproductattributeslist .table-responsive > .table-bordered > tbody > tr > td:first-child,
#pdproductattributeslist .table-responsive > .table-bordered > tfoot > tr > th:first-child,
#pdproductattributeslist .table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0; }
#pdproductattributeslist .table-responsive > .table-bordered > thead > tr > th:last-child,
#pdproductattributeslist .table-responsive > .table-bordered > thead > tr > td:last-child,
#pdproductattributeslist .table-responsive > .table-bordered > tbody > tr > th:last-child,
#pdproductattributeslist .table-responsive > .table-bordered > tbody > tr > td:last-child,
#pdproductattributeslist .table-responsive > .table-bordered > tfoot > tr > th:last-child,
#pdproductattributeslist .table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0; }
#pdproductattributeslist .table-responsive > .table-bordered > thead > tr:last-child > th,
#pdproductattributeslist .table-responsive > .table-bordered > thead > tr:last-child > td,
#pdproductattributeslist .table-responsive > .table-bordered > tbody > tr:last-child > th,
#pdproductattributeslist .table-responsive > .table-bordered > tbody > tr:last-child > td,
#pdproductattributeslist .table-responsive > .table-bordered > tfoot > tr:last-child > th,
#pdproductattributeslist .table-responsive > .table-bordered > tfoot > tr:last-child > td {
border-bottom: 0; }
#pdproductattributeslist tr.footer_actions td {height:50px;}
}
#pdproductattributeslist_grid .product-quantity,
#pdproductattributeslist_grid button.add-to-cart {width:100%;margin-top:10px;}
#pdproductattributeslist_grid .product-quantity .bootstrap-touchspin input.form-control,
#pdproductattributeslist_grid .product-quantity .bootstrap-touchspin input.input-group {
width: auto;
height: 2.75rem;
}
#pdproductattributeslist_grid .product-quantity .bootstrap-touchspin {margin:0 auto;}

View File

@@ -0,0 +1,327 @@
/* Tablesorter Custom SCSS Theme by Dan Feidt (https://github.com/HongPong)
Converted from Custom LESS Theme by Rob Garrison
To create your own theme, modify the code below and run it through
a SCSS compiler, like this one: http://beautifytools.com/scss-compiler.php
or download sass.js from https://github.com/medialize/sass.js
Test out these customization files live
Basic LESS Theme : http://codepen.io/Mottie/pen/eqBbn
Bootstrap LESS : http://codepen.io/Mottie/pen/Ltzpi
Metro LESS Style : http://codepen.io/Mottie/pen/gCslk
Basic SCSS : http://codepen.io/Mottie/pen/LbXdNR
*/
/*** theme ***/
$theme : tablesorter-custom;
/*** fonts ***/
$tableHeaderFont : 11px 'trebuchet ms', verdana, arial;
$tableBodyFont : 11px 'trebuchet ms', verdana, arial;
/*** color definitions ***/
/* for best results, only change the hue (120),
leave the saturation (60%) and luminosity (75%) alone
pick the color from here: http://hslpicker.com/#99E699 */
$headerBackground : hsl(0, 60%, 75%);
$borderAndBackground : #cdcdcd;
$overallBorder : $borderAndBackground 1px solid;
$headerTextColor : #000;
$bodyBackground : #fff;
$bodyTextColor : #000;
$headerAsc : darken(adjust-hue($headerBackground, 5), 10%); /* darken($headerBackground, 10%); */
$headerDesc : lighten(adjust-hue($headerBackground, -5), 10%); /* desaturate($headerAsc, 5%); */
$captionBackground : #fff; /* it might be best to match the document body background color here */
$errorBackground : #e6bf99; /* ajax error message (added to thead) */
$filterCellBackground : #eee;
$filterElementTextColor: #333;
$filterElementBkgd : #fff;
$filterElementBorder : 1px solid #bbb;
$filterTransitionTime : 0.1s;
$filterRowHiddenHeight : 4px; /* becomes height using padding (so it's divided by 2) */
$overallPadding : 4px;
/* 20px should be slightly wider than the icon width to avoid overlap */
$headerPadding : 4px 20px 4px 4px;
/* url(icons/loading.gif); */
$processingIcon : url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=');
/* zebra striping */
@mixin allRows {
background-color: $bodyBackground;
color: $bodyTextColor;
}
@mixin evenRows {
background-color: lighten($headerBackground, 40%);
color: $bodyTextColor;
}
@mixin oddRows {
background-color: lighten($headerBackground, 20%);
}
/* hovered rows */
@mixin oddHovered {
background-color: desaturate($headerBackground, 60%);
color: $bodyTextColor;
}
@mixin evenHovered {
background-color: lighten( desaturate($headerBackground, 60%), 10% );
color: $bodyTextColor;
}
/* Columns widget */
$primaryOdd : adjust-hue($headerBackground, 10); /* saturate( darken( desaturate($headerBackground, 10%), 10% ), 30%); */
$primaryEven : lighten( $primaryOdd, 10% );
$secondaryOdd : $primaryEven;
$secondaryEven : lighten( $primaryEven, 5% );
$tertiaryOdd : $secondaryEven;
$tertiaryEven : lighten( $secondaryEven, 5% );
/* Filter widget transition */
@mixin filterWidgetTransition {
-webkit-transition: line-height $filterTransitionTime ease;
-moz-transition: line-height $filterTransitionTime ease;
-o-transition: line-height $filterTransitionTime ease;
transition: line-height $filterTransitionTime ease;
}
/*** Arrows ***/
$arrowPosition : right 5px center;
/* black */
$unsortedBlack : url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
$sortAscBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
$sortDescBlack : url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* white */
$unsortedWhite : url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
$sortAscWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
$sortDescWhite : url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* automatically choose the correct arrow/text color */
@function set-lightness($a, $b) {
@if (lightness($headerBackground) >= 50) {
@return $a;
} @else {
@return $b;
}
}
@mixin headerText {
color: set-lightness($headerTextColor, lighten($headerTextColor, 90%));
}
@mixin unsorted {
background-image: set-lightness($unsortedBlack, $unsortedWhite);
}
@mixin sortAsc {
background-image: set-lightness($sortAscBlack, $sortAscWhite);
}
@mixin sortDesc {
background-image: set-lightness($sortDescBlack, $sortDescWhite);
}
/* variable theme name - requires less.js 1.3+;
or just replace (!".#{$theme}") with the contents of $theme
*/
.#{$theme} {
font: $tableBodyFont;
background-color: $borderAndBackground;
margin: 10px 0 15px;
width: 100%;
text-align: left;
border-spacing: 0;
border: $overallBorder;
border-width: 1px 0 0 1px;
th, td {
border: $overallBorder;
border-width: 0 1px 1px 0;
}
/* style th's outside of the thead */
th, thead td {
font: $tableHeaderFont;
font-weight: bold;
background-color: $headerBackground;
@include headerText;
border-collapse: collapse;
padding: $overallPadding;
}
tbody td, tfoot th, tfoot td {
padding: $overallPadding;
vertical-align: top;
}
/* style header */
.tablesorter-header {
@include unsorted;
background-repeat: no-repeat;
background-position: $arrowPosition;
padding: $headerPadding;
cursor: pointer;
}
.tablesorter-header.sorter-false {
background-image: none;
cursor: default;
padding: $overallPadding;
}
.tablesorter-headerAsc {
background-color: $headerAsc;
@include sortAsc;
}
.tablesorter-headerDesc {
background-color: $headerDesc;
@include sortDesc;
}
/* tfoot */
tfoot .tablesorter-headerAsc,
tfoot .tablesorter-headerDesc {
/* remove sort arrows from footer */
background-image: none;
}
/* optional disabled input styling */
.disabled {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: not-allowed;
}
/* body */
tbody {
td {
@include allRows;
padding: $overallPadding;
vertical-align: top;
}
/* Zebra Widget - row alternating colors */
tr.odd > td {
@include oddRows;
}
tr.even > td {
@include evenRows;
}
}
/* hovered row colors
you'll need to add additional lines for
rows with more than 2 child rows
*/
tbody > tr.hover td,
tbody > tr:hover td,
tbody > tr:hover + tr.tablesorter-childRow > td,
tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td,
tbody > tr.even.hover > td,
tbody > tr.even:hover > td,
tbody > tr.even:hover + tr.tablesorter-childRow > td,
tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
@include evenHovered;
}
tbody > tr.odd.hover > td,
tbody > tr.odd:hover > td,
tbody > tr.odd:hover + tr.tablesorter-childRow > td,
tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
@include oddHovered;
}
/* table processing indicator - indeterminate spinner */
.tablesorter-processing {
background-image: $processingIcon;
background-position: center center;
background-repeat: no-repeat;
}
/* Column Widget - column sort colors */
tr.odd td.primary {
background-color: $primaryOdd;
}
td.primary, tr.even td.primary {
background-color: $primaryEven;
}
tr.odd td.secondary {
background-color: $secondaryOdd;
}
td.secondary, tr.even td.secondary {
background-color: $secondaryEven;
}
tr.odd td.tertiary {
background-color: $tertiaryOdd;
}
td.tertiary, tr.even td.tertiary {
background-color: $tertiaryEven;
}
/* caption (non-theme matching) */
caption {
background-color: $captionBackground ;
}
/* filter widget */
.tablesorter-filter-row input,
.tablesorter-filter-row select {
width: 98%;
height: auto;
margin: 0;
padding: $overallPadding;
color: $filterElementTextColor;
background-color: $filterElementBkgd;
border: $filterElementBorder;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
@include filterWidgetTransition;
}
.tablesorter-filter-row {
background-color: $filterCellBackground;
}
.tablesorter-filter-row td {
text-align: center;
background-color: $filterCellBackground;
line-height: normal;
text-align: center; /* center the input */
@include filterWidgetTransition;
}
/* hidden filter row */
.tablesorter-filter-row.hideme td {
padding: $filterRowHiddenHeight / 2;
margin: 0;
line-height: 0;
cursor: pointer;
}
.tablesorter-filter-row.hideme * {
height: 1px;
min-height: 0;
border: 0;
padding: 0;
margin: 0;
/* don't use visibility: hidden because it disables tabbing */
opacity: 0;
filter: alpha(opacity=0);
}
/* rows hidden by filtering (needed for child rows) */
.filtered {
display: none;
}
/* ajax error row */
.tablesorter-errorRow td {
text-align: center;
cursor: pointer;
background-color: $errorBackground;
}
}

View File

@@ -0,0 +1 @@
.tablesorter-blackice{width:100%;margin-right:auto;margin-left:auto;font:11px/18px Arial,Sans-serif;text-align:left;background-color:#000;border-collapse:collapse;border-spacing:0}.tablesorter-blackice th,.tablesorter-blackice thead td{padding:4px;font:13px/20px Arial,Sans-serif;font-weight:700;color:#e5e5e5;text-align:left;text-shadow:0 1px 0 rgba(0,0,0,.7);background-color:#111;border:1px solid #232323}.tablesorter-blackice .header,.tablesorter-blackice .tablesorter-header{padding:4px 20px 4px 4px;cursor:pointer;background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-position:center right;background-repeat:no-repeat}.tablesorter-blackice .headerSortUp,.tablesorter-blackice .tablesorter-headerAsc,.tablesorter-blackice .tablesorter-headerSortUp{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);color:#fff}.tablesorter-blackice .headerSortDown,.tablesorter-blackice .tablesorter-headerDesc,.tablesorter-blackice .tablesorter-headerSortDown{color:#fff;background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7)}.tablesorter-blackice thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-blackice tfoot .tablesorter-headerAsc,.tablesorter-blackice tfoot .tablesorter-headerDesc,.tablesorter-blackice tfoot .tablesorter-headerSortDown,.tablesorter-blackice tfoot .tablesorter-headerSortUp{background-image:none}.tablesorter-blackice td{padding:4px;color:#ccc;vertical-align:top;background-color:#333;border:1px solid #232323}.tablesorter-blackice tbody>tr.even:hover>td,.tablesorter-blackice tbody>tr.hover>td,.tablesorter-blackice tbody>tr.odd:hover>td,.tablesorter-blackice tbody>tr:hover>td{background-color:#000}.tablesorter-blackice .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-blackice tr.odd>td{background-color:#333}.tablesorter-blackice tr.even>td{background-color:#393939}.tablesorter-blackice td.primary,.tablesorter-blackice tr.odd td.primary{background-color:#2f3a40}.tablesorter-blackice tr.even td.primary{background-color:#3f4a50}.tablesorter-blackice td.secondary,.tablesorter-blackice tr.odd td.secondary{background-color:#3f4a50}.tablesorter-blackice tr.even td.secondary{background-color:#4f5a60}.tablesorter-blackice td.tertiary,.tablesorter-blackice tr.odd td.tertiary{background-color:#4f5a60}.tablesorter-blackice tr.even td.tertiary{background-color:#5a646b}.tablesorter-blackice>caption{background-color:#fff}.tablesorter-blackice .tablesorter-filter-row{background-color:#222}.tablesorter-blackice .tablesorter-filter-row td{background-color:#222;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-blackice .tablesorter-filter-row .disabled{opacity:.5;cursor:not-allowed}.tablesorter-blackice .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-blackice .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0}.tablesorter-blackice input.tablesorter-filter,.tablesorter-blackice select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99}

View File

@@ -0,0 +1,229 @@
/*************
Blue Theme
*************/
/* overall */
.tablesorter-blue {
width: 100%;
background-color: #fff;
margin: 10px 0 15px;
text-align: left;
border-spacing: 0;
border: #cdcdcd 1px solid;
border-width: 1px 0 0 1px;
}
.tablesorter-blue th,
.tablesorter-blue td {
border: #cdcdcd 1px solid;
border-width: 0 1px 1px 0;
}
/* header */
.tablesorter-blue th,
.tablesorter-blue thead td {
font: 12px/18px Arial, Sans-serif;
font-weight: bold;
color: #000;
background-color: #99bfe6;
border-collapse: collapse;
padding: 4px;
text-shadow: 0 1px 0 rgba(204, 204, 204, 0.7);
}
.tablesorter-blue tbody td,
.tablesorter-blue tfoot th,
.tablesorter-blue tfoot td {
padding: 4px;
vertical-align: top;
}
.tablesorter-blue .header,
.tablesorter-blue .tablesorter-header {
/* black (unsorted) double arrow */
background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
/* white (unsorted) double arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); */
/* image */
/* background-image: url(images/black-unsorted.gif); */
background-repeat: no-repeat;
background-position: center right;
padding: 4px 18px 4px 4px;
white-space: normal;
cursor: pointer;
}
.tablesorter-blue .headerSortUp,
.tablesorter-blue .tablesorter-headerSortUp,
.tablesorter-blue .tablesorter-headerAsc {
background-color: #9fbfdf;
/* black asc arrow */
background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
/* white asc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); */
/* image */
/* background-image: url(images/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #8cb3d9;
/* black desc arrow */
background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* white desc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); */
/* image */
/* background-image: url(images/black-desc.gif); */
}
.tablesorter-blue thead .sorter-false {
background-image: none;
cursor: default;
padding: 4px;
}
/* tfoot */
.tablesorter-blue tfoot .tablesorter-headerSortUp,
.tablesorter-blue tfoot .tablesorter-headerSortDown,
.tablesorter-blue tfoot .tablesorter-headerAsc,
.tablesorter-blue tfoot .tablesorter-headerDesc {
/* remove sort arrows from footer */
background-image: none;
}
/* tbody */
.tablesorter-blue td {
color: #3d3d3d;
background-color: #fff;
padding: 4px;
vertical-align: top;
}
/* hovered row colors
you'll need to add additional lines for
rows with more than 2 child rows
*/
.tablesorter-blue tbody > tr.hover > td,
.tablesorter-blue tbody > tr:hover > td,
.tablesorter-blue tbody > tr:hover + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr.even.hover > td,
.tablesorter-blue tbody > tr.even:hover > td,
.tablesorter-blue tbody > tr.even:hover + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
background-color: #d9d9d9;
}
.tablesorter-blue tbody > tr.odd.hover > td,
.tablesorter-blue tbody > tr.odd:hover > td,
.tablesorter-blue tbody > tr.odd:hover + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
background-color: #bfbfbf;
}
/* table processing indicator */
.tablesorter-blue .tablesorter-processing {
background-position: center center !important;
background-repeat: no-repeat !important;
/* background-image: url(images/loading.gif) !important; */
background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important;
}
/* Zebra Widget - row alternating colors */
.tablesorter-blue tbody tr.odd > td {
background-color: #ebf2fa;
}
.tablesorter-blue tbody tr.even > td {
background-color: #fff;
}
/* Column Widget - column sort colors */
.tablesorter-blue td.primary,
.tablesorter-blue tr.odd td.primary {
background-color: #99b3e6;
}
.tablesorter-blue tr.even td.primary {
background-color: #c2d1f0;
}
.tablesorter-blue td.secondary,
.tablesorter-blue tr.odd td.secondary {
background-color: #c2d1f0;
}
.tablesorter-blue tr.even td.secondary {
background-color: #d6e0f5;
}
.tablesorter-blue td.tertiary,
.tablesorter-blue tr.odd td.tertiary {
background-color: #d6e0f5;
}
.tablesorter-blue tr.even td.tertiary {
background-color: #ebf0fa;
}
/* caption */
.tablesorter-blue > caption {
background-color: #fff;
}
/* filter widget */
.tablesorter-blue .tablesorter-filter-row {
background-color: #eee;
}
.tablesorter-blue .tablesorter-filter-row td {
background-color: #eee;
line-height: normal;
text-align: center; /* center the input */
-webkit-transition: line-height 0.1s ease;
-moz-transition: line-height 0.1s ease;
-o-transition: line-height 0.1s ease;
transition: line-height 0.1s ease;
}
/* optional disabled input styling */
.tablesorter-blue .tablesorter-filter-row .disabled {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: not-allowed;
}
/* hidden filter row */
.tablesorter-blue .tablesorter-filter-row.hideme td {
/*** *********************************************** ***/
/*** change this padding to modify the thickness ***/
/*** of the closed filter row (height = padding x 2) ***/
padding: 2px;
/*** *********************************************** ***/
margin: 0;
line-height: 0;
cursor: pointer;
}
.tablesorter-blue .tablesorter-filter-row.hideme * {
height: 1px;
min-height: 0;
border: 0;
padding: 0;
margin: 0;
/* don't use visibility: hidden because it disables tabbing */
opacity: 0;
filter: alpha(opacity=0);
}
/* filters */
.tablesorter-blue input.tablesorter-filter,
.tablesorter-blue select.tablesorter-filter {
width: 98%;
height: auto;
margin: 0;
padding: 4px;
background-color: #fff;
border: 1px solid #bbb;
color: #333;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: height 0.1s ease;
-moz-transition: height 0.1s ease;
-o-transition: height 0.1s ease;
transition: height 0.1s ease;
}
/* rows hidden by filtering (needed for child rows) */
.tablesorter .filtered {
display: none;
}
/* ajax error row */
.tablesorter .tablesorter-errorRow td {
text-align: center;
cursor: pointer;
background-color: #e6bf99;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.tablesorter-dark{width:100%;font:11px/18px Arial,Sans-serif;color:#ccc;text-align:left;background-color:#000;border-spacing:0}.tablesorter-dark th,.tablesorter-dark thead td{padding:4px;font:12px/20px Arial,Sans-serif;font-weight:700;color:#fff;background-color:#000;border-collapse:collapse}.tablesorter-dark thead th{border-bottom:#333 2px solid}.tablesorter-dark .header,.tablesorter-dark .tablesorter-header{padding:4px 20px 4px 4px;cursor:pointer;background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-position:center right;background-repeat:no-repeat}.tablesorter-dark thead .headerSortUp,.tablesorter-dark thead .tablesorter-headerAsc,.tablesorter-dark thead .tablesorter-headerSortUp{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);border-bottom:#888 1px solid}.tablesorter-dark thead .headerSortDown,.tablesorter-dark thead .tablesorter-headerDesc,.tablesorter-dark thead .tablesorter-headerSortDown{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);border-bottom:#888 1px solid}.tablesorter-dark thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-dark tfoot .tablesorter-headerAsc,.tablesorter-dark tfoot .tablesorter-headerDesc,.tablesorter-dark tfoot .tablesorter-headerSortDown,.tablesorter-dark tfoot .tablesorter-headerSortUp{border-top:#888 1px solid;background-image:none}.tablesorter-dark td{padding:4px;background-color:#000;border-bottom:#333 1px solid;color:#ccc}.tablesorter-dark tbody>tr.even:hover>td,.tablesorter-dark tbody>tr.hover>td,.tablesorter-dark tbody>tr.odd:hover>td,.tablesorter-dark tbody>tr:hover>td{background-color:#000}.tablesorter-dark .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-dark tr.odd>td{background-color:#202020}.tablesorter-dark tr.even>td{background-color:#101010}.tablesorter-dark td.primary,.tablesorter-dark tr.odd td.primary{background-color:#0a0a0a}.tablesorter-dark tr.even td.primary{background-color:#050505}.tablesorter-dark td.secondary,.tablesorter-dark tr.odd td.secondary{background-color:#0f0f0f}.tablesorter-dark tr.even td.secondary{background-color:#0a0a0a}.tablesorter-dark td.tertiary,.tablesorter-dark tr.odd td.tertiary{background-color:#191919}.tablesorter-dark tr.even td.tertiary{background-color:#0f0f0f}.tablesorter-dark>caption{background-color:#202020}.tablesorter-dark .tablesorter-filter-row{background-color:#202020}.tablesorter-dark .tablesorter-filter-row td{background-color:#202020;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-dark .tablesorter-filter-row .disabled{opacity:.5;cursor:not-allowed}.tablesorter-dark .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-dark .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0}.tablesorter-dark input.tablesorter-filter,.tablesorter-dark select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#111;border:1px solid #222;color:#ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99}

View File

@@ -0,0 +1 @@
.tablesorter-default{width:100%;font:12px/18px Arial,Sans-serif;color:#333;background-color:#fff;border-spacing:0;margin:10px 0 15px;text-align:left}.tablesorter-default th,.tablesorter-default thead td{font-weight:700;color:#000;background-color:#fff;border-collapse:collapse;border-bottom:#ccc 2px solid;padding:0}.tablesorter-default tfoot td,.tablesorter-default tfoot th{border:0}.tablesorter-default .header,.tablesorter-default .tablesorter-header{background-image:url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);background-position:center right;background-repeat:no-repeat;cursor:pointer;white-space:normal;padding:4px 20px 4px 4px}.tablesorter-default thead .headerSortUp,.tablesorter-default thead .tablesorter-headerAsc,.tablesorter-default thead .tablesorter-headerSortUp{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);border-bottom:#000 2px solid}.tablesorter-default thead .headerSortDown,.tablesorter-default thead .tablesorter-headerDesc,.tablesorter-default thead .tablesorter-headerSortDown{background-image:url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);border-bottom:#000 2px solid}.tablesorter-default thead .sorter-false{background-image:none;cursor:default;padding:4px}.tablesorter-default tfoot .tablesorter-headerAsc,.tablesorter-default tfoot .tablesorter-headerDesc,.tablesorter-default tfoot .tablesorter-headerSortDown,.tablesorter-default tfoot .tablesorter-headerSortUp{border-top:#000 2px solid}.tablesorter-default td{background-color:#fff;border-bottom:#ccc 1px solid;padding:4px;vertical-align:top}.tablesorter-default tbody>tr.even:hover>td,.tablesorter-default tbody>tr.hover>td,.tablesorter-default tbody>tr.odd:hover>td,.tablesorter-default tbody>tr:hover>td{background-color:#fff;color:#000}.tablesorter-default .tablesorter-processing{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-default tr.odd>td{background-color:#dfdfdf}.tablesorter-default tr.even>td{background-color:#efefef}.tablesorter-default tr.odd td.primary{background-color:#bfbfbf}.tablesorter-default td.primary,.tablesorter-default tr.even td.primary{background-color:#d9d9d9}.tablesorter-default tr.odd td.secondary{background-color:#d9d9d9}.tablesorter-default td.secondary,.tablesorter-default tr.even td.secondary{background-color:#e6e6e6}.tablesorter-default tr.odd td.tertiary{background-color:#e6e6e6}.tablesorter-default td.tertiary,.tablesorter-default tr.even td.tertiary{background-color:#f2f2f2}.tablesorter-default>caption{background-color:#fff}.tablesorter-default .tablesorter-filter-row{background-color:#eee}.tablesorter-default .tablesorter-filter-row td{background-color:#eee;border-bottom:#ccc 1px solid;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-default .tablesorter-filter-row .disabled{opacity:.5;cursor:not-allowed}.tablesorter-default .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-default .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0}.tablesorter-default input.tablesorter-filter,.tablesorter-default select.tablesorter-filter{width:95%;height:auto;margin:4px auto;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.tablesorter-jui{width:100%;border-collapse:separate;border-spacing:2px;margin:10px 0 15px;padding:5px;font-size:.8em}.tablesorter-jui tfoot td,.tablesorter-jui tfoot th,.tablesorter-jui thead td,.tablesorter-jui thead th{position:relative;background-repeat:no-repeat;background-position:right center;font-weight:700!important;border-width:1px!important;text-align:left;padding:8px}.tablesorter-jui .header,.tablesorter-jui .tablesorter-header{cursor:pointer;white-space:normal}.tablesorter-jui .tablesorter-header-inner{padding-right:20px}.tablesorter-jui thead tr th .ui-icon{position:absolute;right:3px;top:50%;margin-top:-8px}.tablesorter-jui thead .sorter-false{cursor:default}.tablesorter-jui thead tr .sorter-false .ui-icon{display:none}.tablesorter-jui tfoot td,.tablesorter-jui tfoot th{font-weight:400!important;font-size:.9em;padding:2px}.tablesorter-jui td{padding:4px;vertical-align:top}.tablesorter-jui tbody>tr.hover>td,.tablesorter-jui tbody>tr:hover>td{opacity:.7}.tablesorter-jui .tablesorter-processing .tablesorter-header-inner{background-position:center center!important;background-repeat:no-repeat!important;background-image:url(data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=)!important}.tablesorter-jui tr.ui-state-default{background-image:none;font-weight:400}.tablesorter-jui .tablesorter-processing{background-color:#ddd;background-color:rgba(255,255,255,.8)}.tablesorter-jui>caption{border:0}.tablesorter-jui .tablesorter-filter-row{background-color:transparent}.tablesorter-jui .tablesorter-filter-row td{background-color:transparent;line-height:normal;text-align:center;-webkit-transition:line-height .1s ease;-moz-transition:line-height .1s ease;-o-transition:line-height .1s ease;transition:line-height .1s ease}.tablesorter-jui .tablesorter-filter-row .disabled{opacity:.5;cursor:not-allowed}.tablesorter-jui .tablesorter-filter-row.hideme td{padding:2px;margin:0;line-height:0;cursor:pointer}.tablesorter-jui .tablesorter-filter-row.hideme *{height:1px;min-height:0;border:0;padding:0;margin:0;opacity:0}.tablesorter-jui input.tablesorter-filter,.tablesorter-jui select.tablesorter-filter{width:98%;height:auto;margin:0;padding:4px;background-color:#fff;border:1px solid #bbb;color:#333;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:height .1s ease;-moz-transition:height .1s ease;-o-transition:height .1s ease;transition:height .1s ease}.tablesorter .filtered{display:none}.tablesorter .tablesorter-errorRow td{text-align:center;cursor:pointer;background-color:#e6bf99}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
tr.group-header td{background:#eee}.group-name{text-transform:uppercase;font-weight:700}.group-count{color:#999}.group-hidden{display:none!important}.group-header,.group-header td{user-select:none;-moz-user-select:none}tr.group-header td i{display:inline-block;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid #888;border-right:4px solid #888;border-left:4px solid transparent;margin-right:7px;user-select:none;-moz-user-select:none}tr.group-header.collapsed td i{border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #888;border-right:0;margin-right:10px}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 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 <contact@prestashop.com>
* @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;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
!function($){$.extend({metadata:{defaults:{type:"class",name:"metadata",cre:/(\{.*\})/,single:"metadata"},setType:function(t,e){this.defaults.type=t,this.defaults.name=e},get:function(elem,opts){var data,m,e,attr,settings=$.extend({},this.defaults,opts);if(settings.single.length||(settings.single="metadata"),data=$.data(elem,settings.single),!data){if(data="{}","class"===settings.type)m=settings.cre.exec(elem.className),m&&(data=m[1]);else if("elem"===settings.type){if(!elem.getElementsByTagName)return;e=elem.getElementsByTagName(settings.name),e.length&&(data=$.trim(e[0].innerHTML))}else void 0!==elem.getAttribute&&(attr=elem.getAttribute(settings.name),attr)&&(data=attr);data.indexOf("{")<0&&(data="{"+data+"}"),data=eval("("+data+")"),$.data(elem,settings.single,data)}return data}}}),$.fn.metadata=function(t){return $.metadata.get(this[0],t)}}(jQuery);return jQuery;}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: Extract out date - updated 10/26/2014 (v2.18.0) */
!function(e){"use strict";var r=/[A-Z]{3,10}\.?\s+\d{1,2},?\s+(?:\d{4})(?:\s+\d{1,2}:\d{2}(?::\d{2})?(?:\s+[AP]M)?)?/i,a=/(\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4}(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?)/i,n=/(\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4}(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?)/i,i=/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,s=/(\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2}(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?)/i,d=/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/;
/*! extract US Long Date */e.tablesorter.addParser({id:"extractUSLongDate",is:function(){return!1},format:function(e){var t=e&&e.match(r);return t&&(t=new Date(t[0]))instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"}),
/*! extract MMDDYYYY */
e.tablesorter.addParser({id:"extractMMDDYYYY",is:function(){return!1},format:function(e){var t=e&&e.replace(/\s+/g," ").replace(/[\-.,]/g,"/").match(a);return t&&(t=new Date(t[0]))instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"}),
/*! extract DDMMYYYY */
e.tablesorter.addParser({id:"extractDDMMYYYY",is:function(){return!1},format:function(e){var t=e&&e.replace(/\s+/g," ").replace(/[\-.,]/g,"/").match(n);return t&&(t=new Date(t[0].replace(i,"$2/$1/$3")))instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"}),
/*! extract YYYYMMDD */
e.tablesorter.addParser({id:"extractYYYYMMDD",is:function(){return!1},format:function(e){var t=e&&e.replace(/\s+/g," ").replace(/[\-.,]/g,"/").match(s);return t&&(t=new Date(t[0].replace(d,"$2/$3/$1")))instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: ISO-8601 date - updated 10/26/2014 (v2.18.0) */
!function(e){"use strict";var r=/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?$/;e.tablesorter.addParser({id:"iso8601date",is:function(e){return!!e&&e.match(r)},format:function(e){var t,s=e&&e.match(r);return s?(t=new Date(s[1],0,1),s[3]&&t.setMonth(s[3]-1),s[5]&&t.setDate(s[5]),s[7]&&t.setHours(s[7]),s[8]&&t.setMinutes(s[8]),s[10]&&t.setSeconds(s[10]),s[12]&&t.setMilliseconds(1e3*Number("0."+s[12])),t.getTime()):e},type:"numeric"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: Month - updated 11/22/2015 (v2.24.6) */
!function(){"use strict";var u=jQuery.tablesorter;u.dates||(u.dates={}),u.dates.months||(u.dates.months={}),u.dates.months.en={1:"Jan",2:"Feb",3:"Mar",4:"Apr",5:"May",6:"Jun",7:"Jul",8:"Aug",9:"Sep",10:"Oct",11:"Nov",12:"Dec"},u.addParser({id:"month",is:function(){return!1},format:function(e,t,n,a){if(e){var r,o,s=t.config,t=s.globalize&&(s.globalize[a]||s.globalize)||{},i=u.dates.months[t.lang||"en"];for(o in s.ignoreCase&&(e=e.toLowerCase()),i)if("string"==typeof o&&(r=i[o],s.ignoreCase&&(r=r.toLowerCase()),e.match(r)))return parseInt(o,10)}return e},type:"numeric"})}();return jQuery;}));

View File

@@ -0,0 +1,10 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: date ranges -updated 11/22/2015 (v2.24.6) */
!function(e){"use strict";var u,f=e.tablesorter,i=/(\d{1,2}[-\s]\d{1,2}[-\s]\d{4}(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?)/gi,d=/(\d{1,2}[-\s]\d{1,2}[-\s]\d{4}(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?)/gi,o=/(\d{1,2})[-\s](\d{1,2})[-\s](\d{4})/,c=/(\d{4}[-\s]\d{1,2}[-\s]\d{1,2}(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?)/gi,g=/(\d{4})[-\s](\d{1,2})[-\s](\d{1,2})/,l=/(\d{1,2}\s+\w+\s+\d{4}(\s+\d{1,2}:\d{2}(:\d{2})?(\s\w+)?)?)/g,p=/(\d{1,2})\s+(\w+)\s+(\d{4})/;
/*! date-range MMDDYYYY */e.tablesorter.addParser({id:"date-range-mdy",is:function(){return!1},format:function(e){var t,r,a=[],n=e.replace(/\s+/g," ").replace(/[\/\-.,]/g,"-").match(i),s=n&&n.length;if(s){for(r=0;r<s;r++)t=new Date(n[r]),a.push(t instanceof Date&&isFinite(t)?t.getTime():n[r]);return a.sort().join(" - ")}return e},type:"text"}),
/*! date-range DDMMYYYY */
e.tablesorter.addParser({id:"date-range-dmy",is:function(){return!1},format:function(e){var t,r,a=[],n=e.replace(/\s+/g," ").replace(/[\/\-.,]/g,"-").match(d),s=n&&n.length;if(s){for(r=0;r<s;r++)t=new Date((""+n[r]).replace(o,"$2/$1/$3")),a.push(t instanceof Date&&isFinite(t)?t.getTime():n[r]);return a.sort().join(" - ")}return e},type:"text"}),
/*! date-range DDMMYYYY */
e.tablesorter.addParser({id:"date-range-ymd",is:function(){return!1},format:function(e){var t,r,a=[],n=e.replace(/\s+/g," ").replace(/[\/\-.,]/g,"-").match(c),s=n&&n.length;if(s){for(r=0;r<s;r++)t=new Date((""+n[r]).replace(g,"$2/$3/$1")),a.push(t instanceof Date&&isFinite(t)?t.getTime():n[r]);return a.sort().join(" - ")}return e},type:"text"}),f.dates||(f.dates={}),f.dates.months||(f.dates.months={}),f.dates.months.en={1:"Jan",2:"Feb",3:"Mar",4:"Apr",5:"May",6:"Jun",7:"Jul",8:"Aug",9:"Sep",10:"Oct",11:"Nov",12:"Dec"},u=function(e,t,r){var a,n,r=t.globalize&&(t.globalize[r]||t.globalize)||{},s=f.dates.months[r.lang||"en"];for(n in t.ignoreCase&&(e=e.toLowerCase()),s)if("string"==typeof n&&(a=s[n],t.ignoreCase&&(a=a.toLowerCase()),e.match(a)))return parseInt(n,10);return e},
/*! date-range "dd MMM yyyy - dd MMM yyyy" */
f.addParser({id:"date-range-dMMMyyyy",is:function(){return!1},format:function(e,t,r,a){var n,s,i,d,o=[],c=e.replace(/\s+/g," ").match(l),g=c&&c.length;if(g){for(d=0;d<g;d++)n="",(i=c[d].match(p))&&4<=i.length&&(i.shift(),s=u(i[1],t.config,a),isNaN(s)||(c[d]=c[d].replace(i[1],s)),n=new Date((""+c[d]).replace(f.regex.shortDateXXY,"$3/$2/$1"))),o.push(n instanceof Date&&isFinite(n)?n.getTime():c[d]);return o.sort().join(" - ")}return e},type:"text"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: two digit year - updated 11/26/2016 (v2.28.0) */
!function(e){"use strict";var r=e.tablesorter,s=(new Date).getFullYear();r.defaults.dataRange="",r.dates||(r.dates={}),r.dates.regxxxxyy=/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{2})/,r.dates.regyyxxxx=/(\d{2})[\/\s](\d{1,2})[\/\s](\d{1,2})/,r.formatDate=function(e,t,r,a){if(e){var n,d,t=e.replace(/\s+/g," ").replace(/[-.,]/g,"/").replace(t,r),r=new Date(t);if(r instanceof Date&&isFinite(r)){for(n=r.getFullYear(),d=a&&a.config.dateRange||50;d<s-n;)n+=100;return r.setFullYear(n)}}return e},e.tablesorter.addParser({id:"ddmmyy",is:function(){return!1},format:function(e,t){return r.formatDate(e,r.dates.regxxxxyy,"$2/$1/19$3",t)},type:"numeric"}),e.tablesorter.addParser({id:"mmddyy",is:function(){return!1},format:function(e,t){return r.formatDate(e,r.dates.regxxxxyy,"$1/$2/19$3",t)},type:"numeric"}),e.tablesorter.addParser({id:"yymmdd",is:function(){return!1},format:function(e,t){return r.formatDate(e,r.dates.regyyxxxx,"$2/$3/19$1",t)},type:"numeric"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: weekday - updated 11/22/2015 (v2.24.6) */
!function(u){"use strict";var f=u.tablesorter;f.dates||(f.dates={}),f.dates.weekdays||(f.dates.weekdays={}),f.dates.weekdays.en={sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},f.dates.weekStartList={sun:"1995",mon:"1996",fri:"1999",sat:"2000"},f.dates.weekdaysXref=["sun","mon","tue","wed","thu","fri","sat"],f.addParser({id:"weekday",is:function(){return!1},format:function(e,t,a,r){if(e){var n,s,i=t.config,t=i.globalize&&(i.globalize[r]||i.globalize)||{},d=f.dates.weekdays[t.lang||"en"],o=f.dates.weekdaysXref;for(n in i.ignoreCase&&(e=e.toLowerCase()),d)if("string"==typeof n&&(s=d[n],i.ignoreCase&&(s=s.toLowerCase()),e.match(s)))return-1<(s=u.inArray(n,o))?s:e}return e},type:"numeric"}),f.addParser({id:"weekday-index",is:function(){return!1},format:function(e,t){if(e){var t=t.config,a=new Date(e);if(a instanceof Date&&isFinite(a))return new Date("1/"+(a.getDay()+1)+"/"+f.dates.weekStartList[t.weekStarts||"sun"])}return e},type:"numeric"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,6 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: dates - updated 5/24/2017 (v2.28.11) */
!function(e){"use strict";
/*! Sugar (https://sugarjs.com/docs/#/DateParsing) */e.tablesorter.addParser({id:"sugar",is:function(){return!1},format:function(e){var t=Date.create||Sugar.Date.create,t=t?t(e):e&&new Date(e);return t instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"}),
/*! Datejs (http://www.datejs.com/) */
e.tablesorter.addParser({id:"datejs",is:function(){return!1},format:function(e){var t=Date.parse?Date.parse(e):e&&new Date(e);return t instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,5 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: duration & countdown - updated 2/7/2015 (v2.19.0) */
!function(e){"use strict";e.tablesorter.addParser({id:"duration",is:function(){return!1},format:function(e,r){var t,n,r=r.config,s="",i="",o=r.durationLength||4,a=new Array(o+1).join("0"),u=(r.durationLabels||"(?:years|year|y),(?:days|day|d),(?:hours|hour|h),(?:minutes|minute|min|m),(?:seconds|second|sec|s)").split(/\s*,\s*/),d=u.length;if(!r.durationRegex){for(t=0;t<d;t++)s+="(?:(\\d+)\\s*"+u[t]+"\\s*)?";r.durationRegex=new RegExp(s,"i")}for(n=(r.usNumberFormat?e.replace(/,/g,""):e.replace(/(\d)(?:\.|\s*)(\d)/g,"$1$2")).match(r.durationRegex),t=1;t<d+1;t++)i+=(a+(n[t]||0)).slice(-o);return i},type:"text"}),
/*! Countdown parser ( hh:mm:ss ) */
e.tablesorter.addParser({id:"countdown",is:function(){return!1},format:function(e,r){for(var t=r.config.durationLength||4,n=new Array(t+1).join("0"),s=e.split(/\s*:\s*/),i=s.length,o=[];i;)o.push((n+(s[--i]||0)).slice(-t));return o.length?o.reverse().join(""):e},type:"text"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: distance */
!function(s){"use strict";var a=s.tablesorter;a.symbolRegex=/[\u215b\u215c\u215d\u215e\u00bc\u00bd\u00be]/g,a.processFractions=function(t,e){var r;return t&&(r=0,t=s.trim(t.replace(/\"/,"")),/\s/.test(t)&&(r=a.formatFloat(t.split(" ")[0],e),t=s.trim(t.substring(t.indexOf(" "),t.length))),/\//g.test(t)?(e=t.split("/"),t=r+parseInt(e[0],10)/parseInt(e[1]||1,10)):a.symbolRegex.test(t)&&(t=r+t.replace(a.symbolRegex,function(t){return{"⅛":".125","⅜":".375","⅝":".625","⅞":".875","¼":".25","½":".5","¾":".75"}[t]}))),t||0},s.tablesorter.addParser({id:"distance",is:function(){return!1},format:function(t,e){var r,s;return""===t?"":(s=/^\s*\S*(\s+\S+)?\s*\'/.test(t)?t.split(/\'/):[0,t],r=a.processFractions(s[0],e),s=a.processFractions(s[1],e),/[\'\"]/.test(t)?parseFloat(r)+(parseFloat(s)/12||0):parseFloat(r)+parseFloat(s))},type:"numeric"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: filetype - updated 11/10/2015 (v2.24.4) */
!function(n){"use strict";n.tablesorter.fileTypes={separator:"|",equivalents:{"3D Image":"3dm|3ds|dwg|max|obj",Audio:"aif|aac|ape|flac|la|m4a|mid|midi|mp2|mp3|ogg|ra|raw|rm|wav|wma",Compressed:"7z|bin|cab|cbr|gz|gzip|iso|lha|lz|rar|tar|tgz|zip|zipx|zoo",Database:"csv|dat|db|dbf|json|ldb|mdb|myd|pdb|sql|tsv|wdb|wmdb|xlr|xls|xlsx|xml",Development:"asm|c|class|cls|cpp|cc|cs|cxx|cbp|cs|dba|fla|h|java|lua|pl|py|pyc|pyo|sh|sln|r|rb|vb",Document:"doc|docx|odt|ott|pages|pdf|rtf|tex|wpd|wps|wrd|wri",Executable:"apk|app|com|exe|gadget|lnk|msi",Fonts:"eot|fnt|fon|otf|ttf|woff",Icons:"ani|cur|icns|ico",Images:"bmp|gif|jpg|jpeg|jpe|jp2|pic|png|psd|tga|tif|tiff|wmf|webp",Presentation:"pps|ppt",Published:"chp|epub|lit|pub|ppp|fm|mobi",Script:"as|bat|cgi|cmd|jar|js|lua|scpt|scptd|sh|vbs|vb|wsf",Styles:"css|less|sass",Text:"info|log|md|markdown|nfo|tex|text|txt",Vectors:"awg|ai|eps|cdr|ps|svg",Video:"asf|avi|flv|m4v|mkv|mov|mp4|mpe|mpeg|mpg|ogg|rm|rv|swf|vob|wmv",Web:"asp|aspx|cer|cfm|htm|html|php|url|xhtml"}},n.tablesorter.addParser({id:"filetype",is:function(){return!1},format:function(t,e){var s,a=e.config.widgetOptions,p=a.group_separator||"-",r=t.lastIndexOf("."),i=n.tablesorter.fileTypes.separator,e=n.tablesorter.fileTypes.matching,o=n.tablesorter.fileTypes.equivalents;if(e||(s=[],n.each(o,function(t,e){s.push(e)}),e=n.tablesorter.fileTypes.matching=i+s.join(i)+i),0<=r&&(s=i+t.substring(r+1,t.length)+i,0<=e.indexOf(s)))for(r in o)if(0<=(i+o[r]+i).indexOf(s))return r+("/"!==p.toString().charAt(0)?a.group_separator:"-")+t;return t},type:"text"}),n.tablesorter.addParser({id:"file-extension",is:function(){return!1},format:function(t){var e,s=t.split(".");return s.length?(e=s.pop(),s.unshift(e),s.join(".")):t},type:"text"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,6 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: jQuery Globalize - updated 11/2/2015 (v2.24.1) */
!function(t){"use strict";
/*! jQuery Globalize date parser (https://github.com/jquery/globalize#date-module) */t.tablesorter.addParser({id:"globalize-date",is:function(){return!1},format:function(e,l,a,o){var r,l=l.config,o=l.globalize&&(l.globalize[o]||l.globalize)||{};return Globalize&&(r="object"==typeof o.Globalize?o.Globalize:Globalize(o.lang||"en"),o.Globalize||(o.Globalize=r)),(l=r&&r.dateParser?r.dateParser(o)(e):e&&new Date(e))instanceof Date&&isFinite(l)?l.getTime():e},type:"numeric"}),
/*! jQuery Globalize number parser (https://github.com/jquery/globalize#number-module) */
t.tablesorter.addParser({id:"globalize-number",is:function(){return!1},format:function(e,l,a,o){var r,i=l.config,o=i.globalize&&(i.globalize[o]||i.globalize)||{};return Globalize&&(r="object"==typeof o.Globalize?o.Globalize:Globalize(o.lang||"en"),o.Globalize||(o.Globalize=r)),i=r&&r.numberParser?r.numberParser(o)(e):e&&t.tablesorter.formatFloat((e||"").replace(/[^\w,. \-()]/g,""),l),e&&"number"==typeof i?i:e},type:"numeric"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: hugeNumbers - updated 3/1/2016 (v2.25.5) */
!function(){"use strict";jQuery.tablesorter.addParser({id:"hugeNumbers",is:function(){return!1},format:function(e){return e.replace(/\B(?=(\d{12})+(?!\d))/g,",")},type:"text"})}();return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: ignoreArticles - updated 9/15/2014 (v2.17.8) */
!function(l){"use strict";var d=l.tablesorter;d.ignoreArticles={en:"the, a, an",de:"der, die, das, des, dem, den, ein, eine, einer, eines, einem, einen",nl:"de, het, de, een",es:"el, la, lo, los, las, un, una, unos, unas",pt:"o, a, os, as, um, uma, uns, umas",fr:"le, la, l'_, les, un, une, des",it:"il, lo, la, l'_, i, gli, le, un', uno, una, un",hu:"a, az, egy"},d.addParser({id:"ignoreArticles",is:function(){return!1},format:function(e,r,s,a){var n,i,t=r.config,e=e||"";return t.headers&&t.headers[a]&&t.headers[a].ignoreArticlesRegex||(t.headers||(t.headers={}),t.headers[a]||(t.headers[a]={}),i=d.getData(t.$headers.eq(a),d.getColumnData(r,t.headers,a),"ignoreArticles"),i=(d.ignoreArticles[i]||"the, a, an")+"",t.headers[a].ignoreArticlesRegex=new RegExp("^("+l.trim(i.split(/\s*\,\s*/).join("\\s|")+"\\s").replace("_\\s","")+")","i"),n=d.getData(t.$headers.eq(a),d.getColumnData(r,t.headers,a),"ignoreArticlesExcept"),t.headers[a].ignoreArticlesRegex2=""!==n?new RegExp("^("+n.replace(/\s/g,"\\s")+")","i"):""),!(i=t.headers[a].ignoreArticlesRegex).test(e)||(n=t.headers[a].ignoreArticlesRegex2)&&n.test(e)?e:e.replace(i,"")},type:"text"})}(jQuery);return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: image - new 7/17/2014 (v2.17.5) */
!function(i){"use strict";i.tablesorter.addParser({id:"image",is:function(){return!1},format:function(t,r,e){return i(e).find("img").attr(r.config.imgAttr||"alt")||t},parsed:!0,type:"text"})}(jQuery);return jQuery;}));

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: leading zeros - updated 4/2/2017 (v2.28.6) */
!function(){"use strict";var a=jQuery.tablesorter;a.addParser({id:"leadingZeros",is:function(){return!1},format:function(e,t){var r=(e||"").replace(a.regex.nondigit,""),t=a.formatFloat(r,t),n=t.toString();return isNaN(t)||t!=r||r.length===n.length||(t-=1e-10*(e.length-n.length)),t},type:"number"})}();return jQuery;}));

View File

@@ -0,0 +1,3 @@
(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
/*! Parser: metric */
!function(d){"use strict";var s={"Y|Yotta|yotta":[1e24,Math.pow(1024,8)],"Z|Zetta|zetta":[1e21,Math.pow(1024,7)],"E|Exa|exa":[1e18,Math.pow(1024,6)],"P|Peta|peta":[1e15,Math.pow(1024,5)],"T|Tera|tera":[1e12,Math.pow(1024,4)],"G|Giga|giga":[1e9,Math.pow(1024,3)],"M|Mega|mega":[1e6,Math.pow(1024,2)],"k|Kilo|kilo":[1e3,1024],"h|hecto":[100,100],"da|deka":[10,10],"d|deci":[.1,.1],"c|centi":[.01,.01],"m|milli":[.001,.001],"µ|micro":[1e-6,1e-6],"n|nano":[1e-9,1e-9],"p|pico":[1e-12,1e-12],"f|femto":[1e-15,1e-15],"a|atto":[1e-18,1e-18],"z|zepto":[1e-21,1e-21],"y|yocto":[1e-24,1e-24]},h=/^[b|bit|byte|o|octet]/i;d.tablesorter.addParser({id:"metric",is:function(){return!1},format:function(e,t,a,o){var r,i,c,n,m="m|meter",p=d.tablesorter.formatFloat(e.replace(/[^\w,. \-()]/g,""),t),t=t.config.$headerIndexed[o],o=t.data("metric");if(o||(r=(t.attr("data-metric-name")||m).split("|"),c=t.attr("data-metric-name-full")||"",n=t.attr("data-metric-name-abbr")||"",o=[c||r[1]||r[0].substring(1),n||r[0]],i=h.test(o.join("")),o[2]=new RegExp("(\\d+)(\\s+)?([Zz]etta|[Ee]xa|[Pp]eta|[Tt]era|[Gg]iga|[Mm]ega|kilo|hecto|deka|deci|centi|milli|micro|nano|pico|femto|atto|zepto|yocto)("+((""===c?"":c+"|"+n)||(i?o[0].toLowerCase()+"|"+o[0].toUpperCase():o[0])+"|"+(i?o[1].toLowerCase()+"|"+o[1].toUpperCase():o[1]))+")"),o[3]=new RegExp("(\\d+)(\\s+)?(Z|E|P|T|G|M|k|h|da|d|c|m|µ|n|p|f|a|z|y)("+(n||(i?o[1].toLowerCase()+"|"+o[1].toUpperCase():o[1]))+")"),t.data("metric",o)),r=e.match(o[2])||e.match(o[3]))for(m in s)if(r[3].match(m))return i=h.test(r[4])?1:0,p*s[m][i];return p},type:"numeric"})}(jQuery);return jQuery;}));

Some files were not shown because too many files have changed in this diff Show More