0
1
Fork 0

Mejorada compatibilidad con dispositivos móviles, los pagos del TPV ahora usan la firma SHA256, estilo del catalog mejorado y mas intuitivo

This commit is contained in:
Juan Ferrer Toribio 2016-01-07 13:58:29 +01:00
parent 971a5261ff
commit 12acaa5e38
45 changed files with 1613 additions and 790 deletions

2
debian/changelog vendored
View File

@ -1,4 +1,4 @@
hedera-web (1.315-deb8) stable; urgency=low
hedera-web (1.316-deb8) stable; urgency=low
* Initial Release.

View File

@ -1,6 +1,17 @@
<?php
/**
* Configuration file. Be careful to respect the PHP syntax.
*
* Do not modify this file! Instead, copy it to config.my.php and make your
* your changes there.
*
* Also, you can use a different config file depending on the virtual host. To
* do it, you have to create another configuration file and rename it to
* config.[subdomain].php. If no configutation file is found for a certain
* domain, the main file will be used. Ej:
*
* - http://www.mydomain.org -> config.www.php
* - http://test.mydomain.org -> config.test.php
**/
$conf = [
@ -9,16 +20,12 @@ $conf = [
**/
'db' => [
'host' => 'db.verdnatura.es'
,'port' => 3306
,'schema' => 'hedera-web'
,'user' => 'hedera-web'
,'pass' => 'base64pass'
]
/**
* The default language.
**/
,'defaultLang' => 'es'
];
?>

View File

@ -8,7 +8,7 @@ if (!defined (__NAMESPACE__.'\_DEVELOPER_MODE'))
define (__NAMESPACE__.'\_LOG_DIR', '/var/log');
}
require_once (_CONFIG_DIR .'/config.php');
$conf = NULL;
ini_set ('log_errors', TRUE);
ini_set ('error_log', 'syslog');

View File

@ -16,12 +16,13 @@ class Web
{
static $sysConn = NULL;
static $conn = NULL;
static $confIncluded = FALSE;
/**
* Initializes the Hedera web library.
**/
static function init ()
{
{
if (self::isHttps ())
ini_set ('session.cookie_secure', TRUE);
@ -83,6 +84,8 @@ class Web
{
global $conf;
self::includeConf ();
if (self::$sysConn)
return;
@ -109,9 +112,41 @@ class Web
return (int) filectime (__FILE__);
}
/**
* Includes the configuration file.
**/
static function includeConf ()
{
global $conf;
if (self::$confIncluded)
return;
$customFile = _CONFIG_DIR .'/config.my.php';
if (!empty ($_SERVER['SERVER_NAME'])
&& preg_match ('/^[\w\-\.]+$/', $_SERVER['SERVER_NAME']))
{
$hostSplit = explode ('.', $_SERVER['SERVER_NAME']);
$hostFile = _CONFIG_DIR .'/config.'. $hostSplit[0] .'.php';
}
if (isset ($hostFile) && file_exists ($hostFile))
$confFile = $hostFile;
elseif (file_exists ($customFile))
$confFile = $customFile;
else
$confFile = _CONFIG_DIR .'/config.php';
require ($confFile);
self::$confIncluded = TRUE;
}
static function login ()
{
global $conf;
self::includeConf ();
$wasLoged = Auth::isLogged ();
$useCookies = TRUE;

View File

@ -193,14 +193,13 @@ class Tpv
try {
return self::$conn->query (
'CALL transaction_confirm_with_check (#, #, #, #, #, #, #)',
'CALL transaction_confirm (#, #, #, #, #, #, #)',
[
$params['Ds_Amount']
,$params['Ds_Order']
,$params['Ds_MerchantCode']
,$params['Ds_Currency']
,$params['Ds_Response']
,$params['Ds_Signature']
,$error
]
);

View File

@ -28,16 +28,16 @@
<h1><t>AddEditAddress</t></h1>
</div>
<div id="actions">
<htk-button
image="image/dark/close.svg"
tip="_Return"
on-click="onReturnClick"
showText="true"/>
<htk-button
image="image/dark/ok.svg"
tip="_Accept"
on-click="onAcceptClick"
showText="true"/>
<htk-button
image="image/dark/close.svg"
tip="_Return"
on-click="onReturnClick"
showText="true"/>
</div>
<div id="form" class="address">
<div class="box">

View File

@ -3,6 +3,11 @@
<h1><t>Connections</t></h1>
</div>
<div id="actions">
<htk-button
image="image/dark/refresh.svg"
tip="_Refresh"
on-click="onRefreshClick"
showText="true"/>
<div class="connections-sum">
<htk-text>
<db-calc-sum
@ -12,11 +17,6 @@
</htk-text>
<t>connections</t>
</div>
<htk-button
image="image/dark/refresh.svg"
tip="_Refresh"
on-click="onRefreshClick"
showText="true"/>
</div>
<div id="form" class="connections">
<div class="box">

View File

@ -9,7 +9,7 @@
.action-bar button.start-order
{
background-color: #EF5350;
margin: .7em .4em;
margin: .7em;
padding: .5em;
box-shadow: 0 0 0.4em rgba(1, 1, 1, 0.4);
}

View File

@ -25,10 +25,12 @@
<div class="new">
<div class="top">
<h2><htk-text form="new" column="title"/></h2>
<!-- <p class="new-info">
<!--
<p class="new-info">
<htk-text format="_%a, %e %b %Y" form="new" column="date_time"/>
</p>
--> <div class="new-text">
-->
<div class="new-text">
<htk-html form="new" column="text"/>
</div>
</div>

View File

@ -4,9 +4,9 @@
</div>
<div id="actions">
<htk-button
image="image/dark/preferences.svg"
tip="_ConfigureOrder"
on-click="onConfigureClick"
image="image/dark/ok.svg"
tip="_Checkout"
on-click="onCheckoutClick"
show-text="true"/>
<htk-button
image="image/dark/view-dual.svg"
@ -14,9 +14,9 @@
on-click="onCatalogClick"
show-text="true"/>
<htk-button
image="image/dark/ok.svg"
tip="_Checkout"
on-click="onCheckoutClick"
image="image/dark/preferences.svg"
tip="_ConfigureOrder"
on-click="onConfigureClick"
show-text="true"/>
</div>
<div id="form" class="basket">

View File

@ -31,9 +31,6 @@ Vn.Catalog = new Class
,activate: function ()
{
document.body.appendChild (this.$('right-panel'));
this.popup = new Htk.Popup ();
this.popup.setChildNode (this.$('lots-popup'));
this.$('items-model').setInfo ('a', 'Articles', 'vn2008', ['item_id']);
@ -66,12 +63,20 @@ Vn.Catalog = new Class
if (view === Vn.Catalog.View.GRID)
{
this.$('view-button').setProperties ({
image: 'image/dark/view-list.svg',
tip: _('List view')
});
this.view = Vn.Catalog.View.GRID;
this.viewNode = this.$('grid-view').getNode ();
this.viewHolder = this.$('grid-view');
}
else
{
this.$('view-button').setProperties ({
image: 'image/dark/view-grid.svg',
tip: _('Grid view')
});
this.view = Vn.Catalog.View.LIST;
this.viewNode = this.$('list-view');
this.viewHolder = this.$('items-grid');
@ -96,6 +101,25 @@ Vn.Catalog = new Class
link.href = this.hash.make ({'type': form.get ('tipo_id')}, true);
}
,onItemsChange: function (model, status)
{
if (status !== Db.Model.Status.CLEAN)
this.$('order').style.display = 'block';
else
this.$('order').style.display = 'none';
}
,onOrderChange: function (e)
{
var value = e.target.value;
var sortField = value.substr (2);
var sortWay = value.charAt (0) === 'A' ?
Db.Model.SortWay.ASC : Db.Model.SortWay.DESC;
if (sortField)
this.$('items-model').sortByName (sortField, sortWay);
}
,realmRenderer: function (builder, form)
{
var link = builder.$('link');
@ -105,17 +129,50 @@ Vn.Catalog = new Class
});
var img = builder.$('image');
img.src = 'image/family/'+ form.get ('id') +'.svg';
img.title = form.get ('reino');
img.src = 'image/family_dark/'+ form.get ('id') +'.svg';
img.title = form.get ('name');
img.alt = img.title;
}
,onTypeChange: function ()
,onRealmChange: function (param, newValue)
{
if (this.$('type').value)
if (newValue)
{
this.$('filters').style.display = 'block';
this.$('realm-msg').style.display = 'none';
}
else
{
this.$('filters').style.display = 'none';
this.$('realm-msg').style.display = 'block';
}
this.refreshTitleColor ();
this.refreshFilter (newValue, undefined);
}
,onTypeChange: function (param, newValue)
{
if (newValue)
this.hideMenu ();
this.refreshTitle ();
this.refreshFilter (undefined, newValue);
}
,refreshFilter: function (realm, type)
{
var batch = this.$('filter-batch');
batch.block ();
this.$('realm-value').value = realm;
this.$('type-value').value = type;
this.$('search').value = undefined;
this.$('color').value = undefined;
this.$('origin').value = undefined;
this.$('category').value = undefined;
this.$('producer').value = undefined;
batch.unblock ();
batch.changed ();
}
,refreshTitleColor: function ()
@ -241,19 +298,17 @@ Vn.Catalog = new Class
,onInfoClick: function (button, form)
{
var descNode = this.$('desc-popup');
var descNode = this.$('description');
Vn.Node.removeChilds (descNode);
var desc = this.$('items-model').get (form.row, 'description');
var desc = form.get ('description');
if (!desc)
desc = _('No info available');
descNode.appendChild (document.createTextNode (desc));
var popup = new Htk.Popup ();
popup.setChildNode (descNode);
popup.show (button.getNode ());
this.$('desc-popup').show (button.getNode ());
}
,onGridAddItemClick: function (button, form)
@ -279,7 +334,7 @@ Vn.Catalog = new Class
this.itemRow = row;
this.onEraseClick ();
this.popup.show (button);
this.$('lots-popup').show (button);
}
,onAddLotClick: function (column, value, row, button)
@ -343,38 +398,12 @@ Vn.Catalog = new Class
sprintf (_('Added%dOf%s'), amountSum, itemName));
}
this.popup.hide ();
this.$('lots-popup').hide ();
}
,onStatusChange: function (model)
{
if (this.popup)
this.popup.reset ();
}
,onOrderChange: function (e)
{
var sortField = e.target.value;
if (sortField)
this.$('items-model').sortByName (sortField);
}
,onRemoveFiltersClick: function ()
{
var batch = this.$('filter-batch');
batch.block ();
this.$('search').value = undefined;
this.$('realm').value = undefined;
this.$('type').value = undefined;
this.$('color').value = undefined;
this.$('origin').value = undefined;
this.$('category').value = undefined;
this.$('producer').value = undefined;
batch.unblock ();
batch.changed ();
this.$('lots-popup').reset ();
}
,gridRenderer: function (res, form)
@ -387,6 +416,14 @@ Vn.Catalog = new Class
}
});
Vn.Catalog.extend
({
View: {
LIST: 0,
GRID: 1
}
});
Vn.Filter = new Class
({
Extends: Htk.Field
@ -421,18 +458,6 @@ Vn.Filter = new Class
return this._placeholder;
}
},
column:
{
type: String
,set: function (x)
{
this._column = x;
}
,get: function ()
{
return this._column;
}
},
filter:
{
type: Sql.Filter
@ -457,7 +482,7 @@ Vn.Filter = new Class
this.node.className = 'vn-filter';
this._select = new Htk.Select ();
this._select.on ('mousedown', this._onClick, this);
this._select.on ('mousedown', this._onMouseDown, this);
this._select.on ('changed', this._onChange, this);
this._select.on ('ready', this._onReady, this);
this.node.appendChild (this._select.getNode ());
@ -469,7 +494,7 @@ Vn.Filter = new Class
this.parent (props);
}
,_onClick: function (e)
,_onMouseDown: function (e)
{
if (this._model && this._model.status === Db.Model.Status.CLEAN)
this._model.refresh ();
@ -520,7 +545,7 @@ Vn.Filter = new Class
,putValue: function (value)
{
this._onClick ();
this._onMouseDown ();
this._realSetValue (value);
}
@ -576,14 +601,6 @@ Vn.Filter = new Class
}
})
Vn.Catalog.extend
({
View: {
LIST: 0,
GRID: 1
}
});
Vn.ColumnItem = new Class
({
Extends: Htk.Column

View File

@ -5,10 +5,6 @@
/* Main */
.catalog > .main
{
padding: .5em;
}
.htk-toast
{
margin-left: -11em;
@ -35,29 +31,19 @@
box-shadow: 0 0 .2em rgba(1, 1, 1, 0.4);
overflow: auto;
}
.right-panel > .body
{
text-align: center;
}
.right-panel .section
{
padding: 1.2em 2em;
}
.right-panel .section > button
{
display: block;
margin: 0 auto;
margin-top: .4em;
}
.right-panel .basket-info
{
background-color: #00acc1;
background-color: #00ACC1;
color: white;
box-shadow: 0 .1em .1em rgba(1, 1, 1, 0.3);
padding: 1.2em 2em;
}
.right-panel .basket-info > button
{
color: #e0f2f1;
color: #E0F2F1;
margin: 0 auto;
display: block;
margin-top: .4em;
}
.right-panel .basket-info > p
{
@ -69,17 +55,67 @@
white-space: nowrap;
overflow: hidden;
}
.right-panel .filters
.right-panel .filter
{
padding: 1em 1.8em;
}
.right-panel .section > select,
.right-panel .section > .vn-filter
.right-panel .filters,
.right-panel .order
{
margin-bottom: 1em;
display: none;
}
.right-panel .realm-msg
{
margin-top: 1em;
/* box-shadow: 0 0 .3em rgba(1, 1, 1, 0.5);
border-radius: 50%;
overflow: hidden;*/
}
.right-panel .realm-msg > h1
{
font-weight: normal;
text-align: center;
padding: 2.5em 0;
color: #777;
/* background-color: #009688;
color: white;*/
}
.right-panel h2
{
font-weight: normal;
padding: .4em 0;
color: #777;
font-size: 1.1em;
}
.right-panel .realms
{
width: 95%;
margin: .2em auto;
}
.right-panel .realms a
{
display: block;
float: left;
width: 33.33%;
}
.right-panel .realms a:hover
{
background-color: rgba(1, 1, 1, 0.05);
border-radius: .1em;
}
.right-panel .realms a > img
{
display: block;
padding: 0;
width: 100%;
}
.right-panel .vn-filter,
.right-panel select
{
width: 100%;
margin: 0 auto;
margin-bottom: .7em;
width: 90%;
display: block;
}
.vn-filter > ul
{
@ -87,14 +123,14 @@
list-style-type: none;
text-align: left;
color: #666;
padding-left: 1.5em;
padding-left: .8em;
}
.vn-filter li
{
margin: 0;
margin-top: .4em;
margin-top: .3em;
line-height: 2em;
max-width: 85%;
max-width: 90%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
@ -106,6 +142,12 @@
padding: .2em;
margin-right: .2em;
}
.right-panel .filters > button
{
display: block;
margin: 0 auto;
margin-top: 1em;
}
/* Item description */
@ -144,7 +186,7 @@ button.confirm > img
.catalog .list-view
{
margin: 0 auto;
padding: .5em;
padding: 1em;
max-width: 45em;
min-width: 25em;
}
@ -198,17 +240,20 @@ td.third-category
.catalog .grid-view
{
padding: 1em;
padding-right: .2em;
padding-bottom: .4em;
text-align: center;
}
.item-box
{
display: inline-block;
text-align: left;
position: relative;
width: 23em;
/* padding: .8em;*/
margin: .4em;
margin-bottom: .1em;
display: inline-block;
width: 22.5em;
margin: 0;
margin-right: .8em;
margin-bottom: .6em;
height: 10em;
overflow: hidden;
}
@ -217,7 +262,6 @@ td.third-category
width: 10em;
height: 100%;
float: left;
margin-right: 1em;
}
.item-box > .image > img
{
@ -225,9 +269,23 @@ td.third-category
height: 100%;
display: block;
margin: 0 auto;
/* border-radius: .3em;*/
}
.item-box > p
.item-info
{
position: absolute;
left: 10.4em;
right: 0;
top: 0;
bottom: 0;
margin: .6em;
}
.item-info > h2
{
font-size: 1.2em;
font-weight: normal;
padding-top: 0;
}
.item-info > p
{
margin: 0;
padding: 0;
@ -237,36 +295,33 @@ td.third-category
white-space: nowrap;
overflow: hidden;
}
.item-box > .producer
.item-info > .producer
{
text-transform: uppercase;
}
.item-box > h2
{
font-size: 1.2em;
font-weight: normal;
padding-top: .6em;
}
.item-box > .aval-price
.item-info > .aval-price
{
position: absolute;
bottom: .6em;
right: 3.5em;
bottom: 0;
right: 2.8em;
}
.item-box .from
.item-info .from
{
font-size: .8em;
font-style: italic;
}
.item-box > .add-button
.item-info .add-button
{
position: absolute;
bottom: .2em;
right: .3em;
bottom: 0;
right: 0;
padding: .3em;
}
.item-box > .info-button
.item-info .add-button > img
{
vertical-align: middle;
}
.item-info > .info-button
{
float: right;
}
@ -276,6 +331,7 @@ td.third-category
.catalog-actions > button.menu
{
display: none;
padding: 1.1em .5em;
}
.catalog-actions > button.menu > img
{

View File

@ -1,27 +1,27 @@
<vn>
<vn-group>
<vn-param id="search"/>
<vn-param id="realm" on-changed="refreshTitleColor"/>
<vn-param id="realm" on-changed="onRealmChange"/>
<vn-param id="type" on-changed="onTypeChange"/>
<vn-param id="search"/>
<vn-param id="color"/>
<vn-param id="origin"/>
<vn-param id="category"/>
<vn-param id="producer"/>
</vn-group>
<vn-group>
<vn-hash-param key="realm" param="realm"/>
<vn-hash-param key="type" param="type"/>
<sql-filter type="AND" id="filter">
<sql-filter-item type="EQUAL" primary="false" id="op-realm">
<sql-field name="reino_id" target="t"/>
<sql-value param="realm"/>
<sql-value id="realm-value"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-type">
<sql-field name="tipo_id" target="a"/>
<sql-value id="type-value"/>
</sql-filter-item>
<sql-filter-item type="LIKE" id="op-name">
<sql-field name="Article"/>
<sql-search-tags param="search"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-type">
<sql-field name="tipo_id" target="a"/>
<sql-value param="type"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-color">
<sql-field name="Color"/>
<sql-value param="color"/>
@ -39,10 +39,6 @@
<sql-value param="producer"/>
</sql-filter-item>
</sql-filter>
</vn-group>
<vn-group>
<vn-hash-param key="realm" param="realm"/>
<vn-hash-param key="type" param="type"/>
<db-query id="basket-lines">
<custom>
SELECT item_id, warehouse_id, SUM(amount) amount
@ -50,7 +46,7 @@
GROUP BY warehouse_id
</custom>
</db-query>
<db-model result-index="2" id="items-model">
<db-model result-index="2" id="items-model" on-status-changed="onItemsChange">
<custom>
CREATE TEMPORARY TABLE tmp.bionic_calc
(INDEX (item_id))
@ -103,22 +99,22 @@
<h1 id="title-text"><t>Catalog</t></h1>
</div>
<div id="actions" class="catalog-actions">
<htk-search-entry
param="search"/>
<htk-button
image="image/dark/view.svg"
tip="_Switch view"
on-click="onSwitchViewClick"
showText="true"/>
<button class="menu" on-click="onShowMenuClick">
<img src="image/dark/menu.svg" alt="_Menu"/>
</button>
<htk-button
id="a"
image="image/dark/basket.svg"
tip="_ShoppingBasket"
on-click="onBasketClick"
showText="true"/>
<button class="menu" on-click="onShowMenuClick">
<img src="image/dark/menu.svg" alt="_Menu"/>
</button>
<htk-button
id="view-button"
tip="_Switch view"
on-click="onSwitchViewClick"
showText="true"/>
<htk-search-entry
param="search"/>
</div>
<div id="form" class="catalog">
<div id="main" class="main"/>
@ -128,7 +124,7 @@
<htk-grid
id="items-grid"
class="items"
empty-message="_Select filter from right menu"
empty-message="_Choose filter from right menu"
show-header="false">
<htk-column-image
title="*"
@ -171,7 +167,7 @@
<htk-repeater
id="grid-view"
class="grid-view"
empty-message="_Select filter from right menu"
empty-message="_Choose filter from right menu"
form-id="item"
renderer="gridRenderer">
<custom>
@ -186,62 +182,51 @@
full-dir="900x900"
editable="true"/>
</div>
<htk-button
form="item"
column="id"
tip="_More info"
image="image/info.svg"
on-click="onInfoClick"
id="info-button"
class="info-button"/>
<h2>
<htk-text form="item" column="Article"/>
</h2>
<p class="producer">
<htk-text form="item" column="producer"/>
</p>
<p>
<t>Size</t> <htk-text form="item" column="Medida"/>,
<t>Category</t> <htk-text form="item" column="Categoria"/>
</p>
<p>
<t>Color</t> <htk-text form="item" column="color"/>
<htk-text form="item" column="Tallos" format=", %.0d Units"/>
</p>
<!-- <p>
<t>Origin</t> <htk-text form="item" column="origin"/>
</p>
<p>
<htk-text form="item" column="Medida"/>
<htk-text form="item" column="Categoria"/>
<htk-text form="item" column="color"/>
</p>
<p>
<htk-text form="item" column="origin"/>
<htk-text form="item" column="Tallos" format="%.0d Units"/>
</p>
--> <div class="aval-price">
<htk-text form="item" column="available"/>
<span class="from">
<t>from</t>
</span>
<span class="price">
<htk-text form="item" column="price" format="%.2d€"/>
</span>
<div class="item-info">
<htk-button
form="item"
column="id"
tip="_More info"
image="image/info.svg"
on-click="onInfoClick"
id="info-button"
class="info-button"/>
<h2>
<htk-text form="item" column="Article"/>
</h2>
<p class="producer">
<htk-text form="item" column="producer"/>
</p>
<p>
<t>Size</t> <htk-text form="item" column="Medida"/>,
<t>Category</t> <htk-text form="item" column="Categoria"/>
</p>
<p>
<t>Color</t> <htk-text form="item" column="color"/>
<htk-text form="item" column="Tallos" format="_, %.0d Units"/>
</p>
<div class="aval-price">
<htk-text form="item" column="available"/>
<span class="from">
<t>from</t>
</span>
<span class="price">
<htk-text form="item" column="price" format="%.2d€"/>
</span>
</div>
<htk-button
form="item"
column="id"
tip="_AddToBasket"
image="image/add.svg"
on-click="onGridAddItemClick"
class="add-button"/>
</div>
<htk-button
form="item"
column="id"
tip="_AddToBasket"
image="image/add.svg"
on-click="onGridAddItemClick"
class="add-button"/>
<div class="clear"/>
</div>
</custom>
</htk-repeater>
<div id="right-panel" class="right-panel" on-click="onRightPanelClick">
<div class="section basket-info">
<div class="basket-info">
<p>
<htk-text form="basket" column="date_send" format="_%A, %e of %B"/>
</p>
@ -253,204 +238,234 @@
<t>Change</t>
</button>
</div>
<div class="section filters">
<select on-change="onOrderChange">
<option value="" disabled="true" selected="true">
<t>Order</t>
</option>
<option value="Article">
<t>Name</t>
</option>
<option value="price">
<t>Price</t>
</option>
<option value="available">
<t>Available</t>
</option>
<option value="Medida">
<t>Size</t>
</option>
<option value="color">
<t>Color</t>
</option>
<option value="producer">
<t>Producer</t>
</option>
<option value="Abreviatura">
<t>Origin</t>
</option>
<option value="Categoria">
<t>Category</t>
</option>
</select>
<vn-filter
placeholder="_Realm"
param="realm">
<db-model
id="realms-model"
property="model"
on-status-changed="refreshTitleColor">
<custom>
SELECT r.id, l.str name, r.color
FROM vn2008.reinos r
LEFT JOIN vn_locale.realm_view l ON l.realm_id = r.id
WHERE r.display != FALSE
ORDER BY name
</custom>
</db-model>
</vn-filter>
<vn-filter
placeholder="_Family"
param="type">
<db-model
id="types-model"
property="model"
conn="conn"
auto-load="false"
result-index="1"
on-status-changed="refreshTitle">
<custom>
CALL item_available ();
SELECT DISTINCT t.tipo_id, l.str name
FROM vn2008.Tipos t
JOIN vn2008.Articles a ON a.tipo_id = t.tipo_id
LEFT JOIN vn_locale.family_view l ON l.family_id = t.tipo_id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<sql-filter-item type="EQUAL" id="op-realm">
<sql-field name="reino_id" target="t"/>
<sql-value param="realm"/>
</sql-filter-item>
<pointer object="op-name"/>
<pointer object="op-color"/>
<pointer object="op-origin"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Color"
param="color">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT c.Id_Tinta, l.str name
FROM vn2008.Tintas c
JOIN vn2008.Articles a ON a.Color = c.Id_Tinta
LEFT JOIN vn_locale.color_view l ON l.color_id = c.Id_Tinta
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-origin"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Producer"
param="producer">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT p.producer_id, p.name
FROM vn2008.producer p
JOIN vn2008.Articles a ON a.producer_id = p.producer_id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-origin"/>
<pointer object="op-color"/>
<pointer object="op-category"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Origin"
param="origin">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT o.id, l.str name, o.Abreviatura
FROM vn2008.Origen o
JOIN vn2008.Articles a ON a.id_origen = o.id
LEFT JOIN vn_locale.origin_view l ON l.origin_id = o.id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-color"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Category"
param="category">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT a.Categoria, a.Categoria category
FROM vn2008.Articles a
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY a.Categoria
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-color"/>
<pointer object="op-origin"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<button class="thin" on-click="onRemoveFiltersClick">
<t>Remove filters</t>
</button>
<div class="filter">
<div class="categories">
<div class="realms">
<htk-repeater
model="realms-model"
form-id="realm-form"
renderer="realmRenderer"
class="realms-box">
<db-model
id="realms-model"
property="model"
on-status-changed="refreshTitleColor">
<custom>
SELECT r.id, l.str name, r.color
FROM vn2008.reinos r
LEFT JOIN vn_locale.realm_view l ON l.realm_id = r.id
WHERE r.display != FALSE
ORDER BY name
</custom>
</db-model>
<custom>
<a id="link">
<img id="image"/>
</a>
</custom>
</htk-repeater>
<div class="clear"/>
</div>
</div>
<div id="realm-msg" class="realm-msg">
<h1><t>Choose a realm</t></h1>
</div>
<div id="filters" class="filters">
<h2><t>Filter by</t></h2>
<vn-filter
placeholder="_Family"
param="type">
<db-model
id="types-model"
property="model"
conn="conn"
result-index="1"
on-status-changed="refreshTitle">
<custom>
CALL item_available ();
SELECT DISTINCT t.tipo_id, l.str name
FROM vn2008.Tipos t
JOIN vn2008.Articles a ON a.tipo_id = t.tipo_id
LEFT JOIN vn_locale.family_view l ON l.family_id = t.tipo_id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" type="AND">
<sql-filter-item type="EQUAL">
<sql-field name="reino_id" target="t"/>
<sql-value param="realm"/>
</sql-filter-item>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Color"
param="color">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT c.Id_Tinta, l.str name
FROM vn2008.Tintas c
JOIN vn2008.Articles a ON a.Color = c.Id_Tinta
JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
LEFT JOIN vn_locale.color_view l ON l.color_id = c.Id_Tinta
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-realm"/>
<pointer object="op-type"/>
<pointer object="op-name"/>
<pointer object="op-origin"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Producer"
param="producer">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT p.producer_id, p.name
FROM vn2008.producer p
JOIN vn2008.Articles a ON a.producer_id = p.producer_id
JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-realm"/>
<pointer object="op-type"/>
<pointer object="op-name"/>
<pointer object="op-origin"/>
<pointer object="op-color"/>
<pointer object="op-category"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Origin"
param="origin">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT o.id, l.str name, o.Abreviatura
FROM vn2008.Origen o
JOIN vn2008.Articles a ON a.id_origen = o.id
JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
LEFT JOIN vn_locale.origin_view l ON l.origin_id = o.id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-realm"/>
<pointer object="op-type"/>
<pointer object="op-name"/>
<pointer object="op-color"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Category"
param="category">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT a.Categoria, a.Categoria category
FROM vn2008.Articles a
JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY a.Categoria
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-realm"/>
<pointer object="op-type"/>
<pointer object="op-name"/>
<pointer object="op-color"/>
<pointer object="op-origin"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
</div>
<div id="order" class="order">
<h2><t>Order by</t></h2>
<select on-change="onOrderChange">
<option value="A|Article" selected="true">
<t>Name</t>
</option>
<option value="A|price">
<t>Lower price</t>
</option>
<option value="D|price">
<t>Higher price</t>
</option>
<option value="A|available">
<t>Available</t>
</option>
<option value="A|Medida">
<t>Lower size</t>
</option>
<option value="D|Medida">
<t>Higher size</t>
</option>
<option value="A|color">
<t>Color</t>
</option>
<option value="A|producer">
<t>Producer</t>
</option>
<option value="A|Abreviatura">
<t>Origin</t>
</option>
<option value="A|Categoria">
<t>Category</t>
</option>
</select>
</div>
</div>
</div>
<div id="desc-popup" class="desc-popup"/>
<div id="lots-popup" class="lots-popup">
<htk-grid class="lots-grid" model="item-lots" show-header="false">
<htk-column-text title="_Store" column="warehouse"/>
<htk-column-spin title="_Price" column="price" unit="€" digits="2"/>
<htk-column-text title="_Pack" column="grouping" format="x%.0d"/>
<htk-column-button
column="id"
image="image/add.svg"
tip="_Add"
on-clicked="onAddLotClick"/>
</htk-grid>
<div class="amount">
<button on-click="onEraseClick" title="_Erase" class="erase">
<img
src="image/dark/delete.svg"
alt="_Erase"/>
</button>
<htk-text id="amount"/>
<button on-click="onConfirmClick" title="_Confirm" class="confirm">
<img
src="image/dark/ok.svg"
alt="_Confirm"/>
</button>
<div class="clear"/>
<htk-popup id="desc-popup">
<div
property="child-node"
class="desc-popup"
id="description"/>
</htk-popup>
<htk-popup id="lots-popup">
<div property="child-node" class="lots-popup">
<htk-grid class="lots-grid" model="item-lots" show-header="false">
<htk-column-text title="_Store" column="warehouse"/>
<htk-column-spin title="_Price" column="price" unit="€" digits="2"/>
<htk-column-text title="_Pack" column="grouping" format="x%.0d"/>
<htk-column-button
column="id"
image="image/add.svg"
tip="_Add"
on-clicked="onAddLotClick"/>
</htk-grid>
<div class="amount">
<button on-click="onEraseClick" title="_Erase" class="erase">
<img
src="image/dark/delete.svg"
alt="_Erase"/>
</button>
<htk-text id="amount"/>
<button on-click="onConfirmClick" title="_Confirm" class="confirm">
<img
src="image/dark/ok.svg"
alt="_Confirm"/>
</button>
<div class="clear"/>
</div>
</div>
</div>
</htk-popup>
</vn>

View File

@ -12,6 +12,15 @@
<h1><t>LastOrders</t></h1>
</div>
<div id="actions">
<htk-button
image="image/dark/basket.svg"
tip="_ShoppingBasket"
on-click="onBasketClick"/>
<htk-button
id="pay-button"
image="image/dark/pay.svg"
tip="_MakePayment"
on-click="onPayButtonClick"/>
<div class="balance">
<span class="label">
<t>Balance:</t>
@ -33,15 +42,6 @@
class="info"
alt="Info"/>
</div>
<htk-button
id="pay-button"
image="image/dark/pay.svg"
tip="_MakePayment"
on-click="onPayButtonClick"/>
<htk-button
image="image/dark/basket.svg"
tip="_ShoppingBasket"
on-click="onBasketClick"/>
</div>
<div id="form" class="orders">
<div class="box confirmed">

View File

@ -25,16 +25,16 @@
<h1><t>AddEditNew</t></h1>
</div>
<div id="actions">
<htk-button
image="image/dark/close.svg"
tip="_Return"
on-click="onReturnClick"
showText="true"/>
<htk-button
image="image/dark/ok.svg"
tip="_Accept"
on-click="onAcceptClick"
showText="true"/>
<htk-button
image="image/dark/close.svg"
tip="_Return"
on-click="onReturnClick"
showText="true"/>
</div>
<div id="form" class="new">
<div class="box">

154
web/image/blog.svg Normal file
View File

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="23.998131"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
sodipodi:docname="blog.svg"
version="1.0"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient2555">
<stop
style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
offset="0"
id="stop2557" />
<stop
style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
offset="1"
id="stop2559" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2555"
id="linearGradient2449"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.5914583,0,0,0.5914584,210.0216,142.2324)"
x1="-344.15295"
y1="274.711"
x2="-395.84943"
y2="425.39993" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="34.461017"
inkscape:cx="12"
inkscape:cy="11.999065"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="1920"
inkscape:window-y="27"
showgrid="false"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:creator>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag />
</dc:subject>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:description />
<dc:contributor>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:contributor>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-384.13803,-539.84063)">
<rect
inkscape:export-ydpi="7.7063322"
inkscape:export-xdpi="7.7063322"
inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png"
transform="scale(-1,1)"
ry="3.6241345"
rx="3.6241345"
y="539.84064"
x="-408.13803"
height="23.998131"
width="24"
id="rect1942"
style="fill:#8ed300;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.06372762;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 393.34458,546.3858 3.48268,-0.0536 c 1.5948,0.0441 2.48113,1.17454 2.46467,2.46428 0.15459,1.52402 -0.27455,3.24973 -2.67899,3.21427 l -3.4291,0 c -1.51194,0.0146 -2.71918,-0.87387 -2.62541,-2.62499 -0.0749,-1.45077 0.40414,-3.02091 2.78615,-2.99999 z"
id="path3778"
sodipodi:nodetypes="ccccccc" />
<path
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.06372762;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 398.97045,558.17147 -5.35798,0 c -2.23262,0.0286 -3.30805,-0.9892 -3.1612,-3.32141 0.0105,-2.09647 1.2266,-2.69508 3.05404,-2.73214 l 5.3044,0 c 3.60674,-0.0963 3.21282,-0.13119 3.26837,2.78571 -0.0227,2.1206 -1.18894,3.25161 -3.10763,3.26784 z"
id="path3780"
sodipodi:nodetypes="ccccccc" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff;stroke-width:3.06372762;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 390.45127,555.27863 0.10716,-6.42855"
id="path3782"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#8ed300;stroke-width:2.55310631;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 393.59928,549.13968 2.9913,0.0475"
id="path3786"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#8ed300;stroke-width:2.55310631;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 393.25946,554.98949 5.98261,0"
id="path3788"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -59,7 +59,7 @@
inkscape:window-width="1920"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:zoom="51.5">
inkscape:zoom="51.6875">
<inkscape:grid
empspacing="2"
enabled="true"
@ -124,86 +124,90 @@
inkscape:label="actions"
style="display:inline"
transform="translate(-61.0004,-867)">
<rect
height="2"
id="rect13363"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="64.000198"
y="870" />
<rect
height="2"
id="rect13365"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="68.000198"
y="870" />
<rect
height="2"
id="rect13367"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="72.000198"
y="870" />
<rect
height="2"
id="rect13369"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="64.000198"
y="874.01562" />
<rect
height="2"
id="rect13371"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="68.000198"
y="874.01562" />
<rect
height="2"
id="rect13373"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="72.000198"
y="874.01562" />
<rect
height="2"
id="rect13375"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="64.000198"
y="878" />
<rect
height="2"
id="rect13377"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="68.000198"
y="878" />
<rect
height="2"
id="rect13379"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="72.000198"
y="878" />
<g
id="g4152"
transform="matrix(1.2,0,0,1.2,-13.799838,-175)">
<rect
y="870"
x="64.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13363"
height="2" />
<rect
y="870"
x="68.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13365"
height="2" />
<rect
y="870"
x="72.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13367"
height="2" />
<rect
y="874.01562"
x="64.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13369"
height="2" />
<rect
y="874.01562"
x="68.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13371"
height="2" />
<rect
y="874.01562"
x="72.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13373"
height="2" />
<rect
y="878"
x="64.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13375"
height="2" />
<rect
y="878"
x="68.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13377"
height="2" />
<rect
y="878"
x="72.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect13379"
height="2" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -63,7 +63,7 @@
inkscape:window-width="1920"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:zoom="51.5">
inkscape:zoom="51.6875">
<inkscape:grid
dotted="false"
empspacing="2"
@ -133,56 +133,60 @@
inkscape:label="actions"
style="display:inline"
transform="translate(-41.000401,-867)">
<rect
height="2.0002136"
id="rect5356"
inkscape:label="a"
style="color:#bebebe;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
width="7.0000005"
x="47.000198"
y="869.99976" />
<rect
height="2.0002136"
id="rect5358"
inkscape:label="a"
style="color:#bebebe;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
width="7.0000005"
x="47.000198"
y="873.99976" />
<rect
height="2.0002136"
id="rect5360"
inkscape:label="a"
style="color:#bebebe;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
width="7.0000005"
x="47.000198"
y="877.99976" />
<rect
height="2"
id="rect5398"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="44.000198"
y="870" />
<rect
height="2"
id="rect5401"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="44.000198"
y="874.01562" />
<rect
height="2"
id="rect5403"
rx="0.38461545"
ry="0.37878788"
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
width="2.0000002"
x="44.000198"
y="878" />
<g
id="g4149"
transform="matrix(1.1999999,0,0,1.1999999,-9.7998324,-174.99977)">
<rect
y="869.99976"
x="47.000198"
width="7.0000005"
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
inkscape:label="a"
id="rect5356"
height="2.0002136" />
<rect
y="873.99976"
x="47.000198"
width="7.0000005"
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
inkscape:label="a"
id="rect5358"
height="2.0002136" />
<rect
y="877.99976"
x="47.000198"
width="7.0000005"
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
inkscape:label="a"
id="rect5360"
height="2.0002136" />
<rect
y="870"
x="44.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect5398"
height="2" />
<rect
y="874.01562"
x="44.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect5401"
height="2" />
<rect
y="878"
x="44.000198"
width="2.0000002"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
ry="0.37878788"
rx="0.38461545"
id="rect5403"
height="2" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="40"
height="40"
viewBox="0 0 40 40"
enable-background="new 0 0 444.488 324"
xml:space="preserve"
id="svg3218"
inkscape:version="0.91 r13725"
sodipodi:docname="1.svg"><metadata
id="metadata3449"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3447" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview3445"
showgrid="false"
inkscape:zoom="20.675"
inkscape:cx="7.9322854"
inkscape:cy="19.903265"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg3218"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="Background"
transform="translate(-4.4638381,-117.67518)" /><g
id="Guides"
transform="translate(-4.4638381,-117.67518)" /><path
d="M 20,20"
id="path3283"
inkscape:connector-curvature="0"
style="fill:#8ed300;stroke-width:2.5;stroke-miterlimit:3.86369991;stroke-dasharray:none" /><path
style="fill:none;stroke:#b92a26;stroke-width:2.5;stroke-miterlimit:3.86369991;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path3297"
d="m 9.152909,24.579892 c -0.5065455,-1.890545 0.2378182,-3.82109 1.725818,-4.913818 -0.09127,-0.07818 -0.180363,-0.160363 -0.266909,-0.247272 -1.8018181,-1.801455 -1.8018181,-4.722546 0,-6.524 1.383273,-1.383273 3.426545,-1.704728 5.116364,-0.963637 0.02182,-0.117091 0.04836,-0.234545 0.08,-0.351272 0.659272,-2.461455 3.189091,-3.9218186 5.650181,-3.2621822 1.889091,0.5061818 3.189091,2.1141822 3.392728,3.9472722 0.112727,-0.03964 0.227636,-0.07564 0.345454,-0.106909 2.461091,-0.659272 4.990909,0.801091 5.650546,3.262182 0.506545,1.890546 -0.237819,3.821455 -1.725819,4.914182 0.09091,0.07782 0.179637,0.159636 0.265455,0.245818 1.801818,1.801818 1.801818,4.722546 0,6.524 -1.381818,1.381818 -3.421818,1.704 -5.110545,0.966182 -0.02182,0.116363 -0.04836,0.233454 -0.07964,0.349818 -0.659273,2.461091 -3.189454,3.921455 -5.650545,3.262182 -1.889455,-0.506182 -3.189455,-2.114909 -3.392364,-3.948727 -0.114182,0.04036 -0.230909,0.07673 -0.349818,0.108363 C 12.342,28.500983 9.8121817,27.04062 9.152909,24.579892 Z"
stroke-miterlimit="3.8637" /><circle
stroke-miterlimit="3.8637"
cx="20"
cy="20"
r="3.3763635"
id="circle3315"
style="fill:none;stroke:#b92a26;stroke-width:2.5;stroke-miterlimit:3.86369991;stroke-dasharray:none;stroke-opacity:1" /><path
stroke-miterlimit="3.8637"
d="M 20,20"
id="path3317"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-miterlimit:3.86369991;stroke-dasharray:none" /></svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="40"
height="40"
viewBox="0 0 40 40"
enable-background="new 0 0 444.488 324"
xml:space="preserve"
id="svg3218"
inkscape:version="0.91 r13725"
sodipodi:docname="2.svg"><metadata
id="metadata3449"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3447" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview3445"
showgrid="false"
inkscape:zoom="20.675"
inkscape:cx="8.305428"
inkscape:cy="25.495398"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg3218"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="Background"
transform="translate(-156.32787,-82.717)" /><g
id="Guides"
transform="translate(-156.32787,-82.717)" /><path
style="fill:#8ed300;stroke:#00978a;stroke-opacity:1;stroke-width:2.2;stroke-miterlimit:3.92211413;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path3387"
d="M 20.816063,16.718122" /><g
id="g3401"
transform="matrix(0.34545455,0,0,0.34545455,-52.866888,-3.4816067)"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none"><g
id="g3403"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none" /></g><g
id="g3407"
transform="matrix(0.34545455,0,0,0.34545455,-52.866888,-3.4816067)"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none"><g
id="g3409"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none"><g
id="g3411"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none"><path
id="path3415"
style="fill:none;stroke:#00978a;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-opacity:1;stroke-dasharray:none"
d="m 211.599,61.305 m 18.57101,0 a 18.57,6.3759999 0 0 1 -18.57,6.376 18.57,6.3759999 0 0 1 -18.57,-6.376 18.57,6.3759999 0 0 1 18.57,-6.376 18.57,6.3759999 0 0 1 18.57,6.376 z M 224.431,97.786 c 0,2.549 -5.695,4.615 -12.72,4.615 -6.749,0 -12.271,-1.907 -12.693,-4.317 -0.207,-0.331 -0.316,-0.674 -0.316,-1.027 0,-0.067 0.004,-0.134 0,-0.2 0,0 -4.964,-32.619 -5.143,-33.792 0.174,1.143 7.998,4.723 18.034,4.723 9.308,0 16.979,-2.28 18.044,-5.22 l -5.207,35.018 c -0.003,0.066 0.001,0.132 0.001,0.2 z" /></g></g></g><path
style="clip-rule:evenodd;fill:#ffffff;stroke:#00978a;stroke-width:2.2;stroke-miterlimit:3.92211413;stroke-opacity:1;fill-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path3423"
d="M 20.335796,16.959222 C 16.784178,11.681368 6.7670325,13.819386 9.1945416,23.46655 11.787178,22.122731 16.960705,12.288331 20.335796,16.959222 Z"
stroke-miterlimit="3.8637" /><path
style="clip-rule:evenodd;fill:#ffffff;stroke:#00978a;stroke-width:2.2;stroke-miterlimit:3.92211413;stroke-opacity:1;fill-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path3429"
d="M 20.126796,16.959222 C 23.678415,11.681368 33.69556,13.819386 31.268051,23.46655 28.675414,22.122731 23.501887,12.288331 20.126796,16.959222 Z"
stroke-miterlimit="3.8637" /><path
stroke-miterlimit="3.8637"
d="m 21.156942,16.975113 c -2.695237,-5.762527 4.296763,-13.2467997 11.316745,-6.1978 -2.487963,1.530364 -13.582927,0.899564 -11.316745,6.1978 z"
id="path3437"
inkscape:connector-curvature="0"
style="clip-rule:evenodd;fill:#ffffff;stroke:#00978a;stroke-width:2.2;stroke-miterlimit:3.92211413;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" /><path
stroke-miterlimit="3.8637"
d="m 19.305305,16.975113 c 2.695582,-5.762527 -4.296763,-13.2467997 -11.3163998,-6.1978 2.4879638,1.530364 13.5829278,0.899564 11.3163998,6.1978 z"
id="path3443"
inkscape:connector-curvature="0"
style="clip-rule:evenodd;fill:#ffffff;stroke:#00978a;stroke-width:2.2;stroke-miterlimit:3.92211413;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" /></svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="40"
height="40"
viewBox="0 0 40 40"
enable-background="new 0 0 444.488 324"
xml:space="preserve"
id="svg3218"
inkscape:version="0.91 r13725"
sodipodi:docname="3.svg"><metadata
id="metadata3449"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3447" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview3445"
showgrid="false"
inkscape:zoom="20.675"
inkscape:cx="14.932118"
inkscape:cy="15.821879"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg3218"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="Background"
transform="translate(-156.32787,-82.717)" /><g
id="Guides"
transform="translate(-156.32787,-82.717)" /><g
id="g3401"
transform="matrix(0.34545455,0,0,0.34545455,-52.866888,-3.4816067)"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none"><g
id="g3403"
style="stroke:#00978a;stroke-opacity:1;stroke-width:6.36842097;stroke-miterlimit:3.92211413;stroke-dasharray:none" /></g><g
id="g3407"
transform="matrix(0.45504845,0,0,0.45504845,-76.288257,-15.796386)"
style="stroke:#f11b65;stroke-width:5.49392048;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"><g
id="g3409"
style="stroke:#f11b65;stroke-width:5.49392048;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"><g
id="g3411"
style="stroke:#f11b65;stroke-width:5.49392048;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"><path
id="path3415"
style="fill:none;stroke:#f11b65;stroke-width:5.49392048;stroke-miterlimit:3.92211413;stroke-dasharray:none;stroke-opacity:1"
d="m 211.599,61.305 m 18.57101,0 a 18.57,6.3759999 0 0 1 -18.57,6.376 18.57,6.3759999 0 0 1 -18.57,-6.376 18.57,6.3759999 0 0 1 18.57,-6.376 18.57,6.3759999 0 0 1 18.57,6.376 z M 224.431,97.786 c 0,2.549 -5.695,4.615 -12.72,4.615 -6.749,0 -12.271,-1.907 -12.693,-4.317 -0.207,-0.331 -0.316,-0.674 -0.316,-1.027 0,-0.067 0.004,-0.134 0,-0.2 0,0 -4.964,-32.619 -5.143,-33.792 0.174,1.143 7.998,4.723 18.034,4.723 9.308,0 16.979,-2.28 18.044,-5.22 l -5.207,35.018 c -0.003,0.066 0.001,0.132 0.001,0.2 z"
inkscape:connector-curvature="0" /></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="40"
height="40"
viewBox="0 0 40 40"
enable-background="new 0 0 444.488 324"
xml:space="preserve"
id="svg3218"
inkscape:version="0.91 r13725"
sodipodi:docname="4.svg"><metadata
id="metadata3449"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3447" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview3445"
showgrid="false"
inkscape:zoom="20.675"
inkscape:cx="7.9322854"
inkscape:cy="19.903265"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg3218"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="Background"
transform="translate(-296.818,-250.8545)" /><g
id="Guides"
transform="translate(-296.818,-250.8545)" /><path
d="M 20,20"
id="path3361"
inkscape:connector-curvature="0"
style="fill:#8ed300;stroke-width:2.5;stroke-miterlimit:3.86369991;stroke-dasharray:none" /><path
style="fill:none;stroke:#ff9d02;stroke-width:2.5;stroke-miterlimit:3.86369991;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path3373"
d="m 17.731398,17.73071 4.536164,0 0,4.536164 -4.536164,0 0,-4.536164 0,0 z m -6.403,2.253746 -3.751982,-2.1736 2.1736,-3.751982 2.173945,-3.752327 3.752328,2.173945 0.0069,-4.3364909 4.336491,0.00725 4.336491,0.00725 -0.0073,4.3361459 3.759928,-2.160473 2.160818,3.759927 2.160473,3.759582 -3.759582,2.160818 3.752672,2.171528 -2.171872,3.752672 -2.171528,3.752328 -3.752672,-2.171528 -0.0086,4.336491 -4.336145,-0.0086 -4.336146,-0.0086 0.0086,-4.336146 -3.758891,2.162891 -2.1632367,-3.758545 -2.162891,-3.759237 3.7585457,-2.163236 0,0 0,0 0,0 z"
stroke-miterlimit="3.8637" /></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="40"
height="40"
viewBox="0 0 40 40"
enable-background="new 0 0 444.488 324"
xml:space="preserve"
id="svg3218"
inkscape:version="0.91 r13725"
sodipodi:docname="5.svg"><metadata
id="metadata3449"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3447" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview3445"
showgrid="false"
inkscape:zoom="20.675"
inkscape:cx="7.9322854"
inkscape:cy="19.903265"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg3218"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="Background"
transform="translate(-139.618,-259.377)" /><g
id="Guides"
transform="translate(-139.618,-259.377)" /><path
d="M 20,20"
id="path3333"
inkscape:connector-curvature="0"
style="fill:#8ed300" /><path
style="fill:none;stroke:#aeb52b;stroke-width:2.7;stroke-miterlimit:3.86369991;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path3349"
d="M 31.935062,28.699333 C 37.512403,15.912334 24.291458,4.8098836 6.7719251,15.762511 20.142612,27.944131 32.773051,16.114662 31.935062,28.699333 Z"
stroke-miterlimit="3.8637" /></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
x="0px"
y="0px"
width="40"
height="40"
viewBox="0 0 40 40"
enable-background="new 0 0 444.488 324"
xml:space="preserve"
id="svg3218"
inkscape:version="0.91 r13725"
sodipodi:docname="7.svg"><metadata
id="metadata3449"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3447" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview3445"
showgrid="false"
inkscape:zoom="20.675"
inkscape:cx="7.9322854"
inkscape:cy="19.903265"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg3218"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="Background"
transform="translate(-4.4638381,-117.67518)" /><g
id="Guides"
transform="translate(-4.4638381,-117.67518)" /><path
style="fill:none;fill-rule:evenodd;stroke:#795548;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3.89777493;stroke-dasharray:none;stroke-opacity:1"
d="m 11.161597,17.565028 4.753832,12.877285 -0.926791,2.453599 10.604652,-0.04021 -1.057195,-2.444686 4.09778,-12.990193 z"
id="path4214"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" /><path
d="M 20.237553,22.829118"
id="path3283"
inkscape:connector-curvature="0"
style="fill:#8ed300;stroke-width:2.2;stroke-miterlimit:3.89777493;stroke-dasharray:none;stroke:#795548;stroke-opacity:1" /><path
stroke-miterlimit="3.8637"
d="M 20.237553,22.829118"
id="path3317"
inkscape:connector-curvature="0"
style="fill:none;stroke:#795548;stroke-width:2.2;stroke-miterlimit:3.89777493;stroke-dasharray:none;stroke-opacity:1" /><path
style="fill:#8ed300;stroke:#795548;stroke-opacity:1;stroke-width:2.2;stroke-miterlimit:3.89777493;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path3387"
d="M 19.053615,19.524958" /><path
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;stroke:#795548;stroke-width:2.2;stroke-miterlimit:3.89777493;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path3429"
d="M 20.638584,19.072817 C 24.190203,13.794962 34.207348,15.93298 31.779839,25.580144 29.187203,24.236326 24.013676,14.401926 20.638584,19.072817 Z"
stroke-miterlimit="3.8637" /><path
stroke-miterlimit="3.8637"
d="M 20.559545,19.781949 C 17.864308,14.019422 24.856307,6.5351504 31.876289,13.58415 29.388326,15.114513 18.293363,14.483713 20.559545,19.781949 Z"
id="path3437"
inkscape:connector-curvature="0"
style="clip-rule:evenodd;fill:#ffffff;fill-opacity:1;stroke:#795548;stroke-width:2.2;stroke-miterlimit:3.89777493;stroke-opacity:1;stroke-dasharray:none" /><g
id="g3295"
transform="matrix(0.24902799,0,0,0.2507763,1.1033566,-2.4096201)"
style="fill:#ffffff;fill-opacity:1;stroke-width:8.8034997;stroke-miterlimit:3.89777493;stroke-dasharray:none;stroke:#795548;stroke-opacity:1"><path
stroke-miterlimit="3.8637"
d="m 25.409,81.75 c -1.393,-5.199 0.654,-10.508 4.746,-13.513 -0.251,-0.215 -0.496,-0.441 -0.734,-0.68 -4.955,-4.954 -4.955,-12.987 0,-17.941 3.804,-3.804 9.423,-4.688 14.07,-2.65 0.06,-0.322 0.133,-0.645 0.22,-0.966 1.813,-6.769 8.77,-10.785 15.538,-8.971 5.195,1.392 8.77,5.814 9.33,10.855 0.31,-0.109 0.626,-0.208 0.95,-0.294 6.768,-1.813 13.725,2.203 15.539,8.971 1.393,5.199 -0.654,10.509 -4.746,13.514 0.25,0.214 0.494,0.439 0.73,0.676 4.955,4.955 4.955,12.987 0,17.941 -3.8,3.8 -9.41,4.686 -14.054,2.657 -0.06,0.32 -0.133,0.642 -0.219,0.962 -1.813,6.768 -8.771,10.784 -15.539,8.971 -5.196,-1.392 -8.771,-5.816 -9.329,-10.859 -0.314,0.111 -0.635,0.211 -0.962,0.298 -6.77,1.812 -13.727,-2.204 -15.54,-8.971 z"
id="path3297"
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-opacity:1;stroke:#795548;stroke-width:8.8034997;stroke-miterlimit:3.89777493;stroke-dasharray:none;stroke-opacity:1" /></g><ellipse
stroke-miterlimit="3.8637"
cx="14.859289"
cy="14.932889"
id="circle3315"
style="fill:none;fill-opacity:1;stroke:#795548;stroke-width:2.2;stroke-miterlimit:3.89777493;stroke-dasharray:none;stroke-opacity:1"
rx="2.3122249"
ry="2.3284578" /></svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -130,7 +130,7 @@ Db.Model.implement
,set: function (x)
{
this._mainTable = null;
this.requestedMainTable = x;
this._requestedMainTable = x;
this._refreshMainTable ();
}
,get: function ()
@ -147,7 +147,7 @@ Db.Model.implement
,set: function (x)
{
this._updatable = false;
this.requestedUpdatable = x;
this._requestedUpdatable = x;
this._refreshUpdatable ();
}
,get: function ()
@ -220,16 +220,19 @@ Db.Model.implement
,columnMap: null
,_updatable: false
,sortColumn: -1
,sortWay: null
,requestedIndexes: {}
,indexes: []
,_requestedSortIndex: -1
,_requestedSortName: null
,_sortColumn: -1
,_sortWay: null
,requestedUpdatable: false
,operations: null
,operationsMap: null
,defaults: []
,requestedMainTable: null
,_requestedIndexes: {}
,_indexes: []
,_requestedUpdatable: false
,_operations: null
,_operationsMap: null
,_defaults: []
,_requestedMainTable: null
,initialize: function (props)
{
@ -261,11 +264,31 @@ Db.Model.implement
**/
,refresh: function ()
{
if (this._stmt && this._batch)
this._stmt.findHolders (this._batch);
var ready = false;
if (this._stmt && this._conn)
{
var ids = this._stmt.findHolders ();
if (ids)
{
if (this._batch && this._batch.isReady ())
{
ready = true;
if (this._conn && this._stmt
&& (!this._batch || this._batch.isReady ()))
for (var i = 0; i < ids.length; i++)
if (!this._batch.get (ids[i]))
{
ready = false;
break;
}
}
}
else
ready = true;
}
if (ready)
{
this._setStatus (Db.Model.Status.LOADING);
this._conn.execStmt (this._stmt, this._selectDone.bind (this), this._batch);
@ -293,7 +316,6 @@ Db.Model.implement
if (dataResult && typeof dataResult === 'object')
{
this.sortColumn = -1;
this.data = dataResult.data;
this.tables = dataResult.tables;
this.columns = dataResult.columns;
@ -301,9 +323,20 @@ Db.Model.implement
this._repairColumns ();
this._refreshRowIndexes (0);
this._refreshMainTable ();
for (column in this.requestedIndexes)
for (column in this._requestedIndexes)
this._buildIndex (column);
var sortColumn = -1;
if (this._requestedSortName)
sortColumn = this.getColumnIndex (this._requestedSortName);
else if (this._requestedSortIndex !== -1
&& this.checkColExists (this._requestedSortIndex))
sortColumn = this._requestedSortIndex;
if (sortColumn !== -1)
this._realSort (sortColumn, this._sortWay);
this._setStatus (Db.Model.Status.READY);
}
@ -316,12 +349,12 @@ Db.Model.implement
for (var i = start; i < this.data.length; i++)
this.data[i].index = i;
if (this.operationsMap)
if (this._operationsMap)
{
this.operationsMap = {};
this._operationsMap = {};
for (var i = 0; i < this.operations.length; i++)
this.operationsMap[i] = this.operations[i];
for (var i = 0; i < this._operations.length; i++)
this._operationsMap[i] = this._operations[i];
}
}
@ -331,14 +364,15 @@ Db.Model.implement
this.tables = null;
this.columns = null;
this.columnMap = null;
this.indexes = [];
this._sortColumn = -1;
this._indexes = [];
this._resetOperations ();
}
,_refreshUpdatable: function ()
{
var oldValue = this._updatable;
this._updatable = this._mainTable !== null && this.requestedUpdatable;
this._updatable = this._mainTable !== null && this._requestedUpdatable;
if (oldValue != this._updatable)
this.signalEmit ('updatable-changed');
@ -352,8 +386,8 @@ Db.Model.implement
if (tables)
for (var i = 0; i < tables.length; i++)
if (tables[i].pks.length > 0)
if (!this.requestedMainTable
|| tables[i].name === this.requestedMainTable)
if (!this._requestedMainTable
|| tables[i].name === this._requestedMainTable)
{
newMainTable = i;
break;
@ -372,7 +406,7 @@ Db.Model.implement
**/
,setDefault: function (field, table, expr)
{
this.defaults.push
this._defaults.push
({
field: field
,table: table
@ -389,7 +423,7 @@ Db.Model.implement
**/
,setDefaultFromValue: function (field, table, value)
{
this.defaults.push
this._defaults.push
({
field: field
,table: table
@ -407,7 +441,7 @@ Db.Model.implement
**/
,setDefaultFromColumn: function (field, table, srcColumn)
{
this.defaults.push
this._defaults.push
({
field: field
,table: table
@ -591,7 +625,7 @@ Db.Model.implement
var op = this._createOperation (rowIndex);
op.type |= Db.Model.Operation.DELETE;
if (!this.requestedMainTable)
if (!this._requestedMainTable)
{
this.signalEmit ('row-deleted-before', rowIndex);
this.data.splice (rowIndex, 1);
@ -659,7 +693,7 @@ Db.Model.implement
**/
,performOperations: function ()
{
var ops = this.operations;
var ops = this._operations;
if (ops.length === 0)
{
@ -742,9 +776,9 @@ Db.Model.implement
var dmlQuery = new Sql.Insert ();
var table = this.tables[tableIndex];
for (var i = 0; i < this.defaults.length; i++)
for (var i = 0; i < this._defaults.length; i++)
{
var def = this.defaults[i];
var def = this._defaults[i];
if (def.table === table.name)
{
@ -798,10 +832,10 @@ Db.Model.implement
{
if (resultSet.getError ())
{
this.operations = this.operations.concat (ops);
this._operations = this._operations.concat (ops);
for (var i = 0; i < ops.length; i++)
this.operationsMap[ops[i].row.index] = ops[i];
this._operationsMap[ops[i].row.index] = ops[i];
return;
}
@ -874,9 +908,9 @@ Db.Model.implement
**/
,reverseOperations: function ()
{
for (var i = 0; i < this.operations.length; i++)
for (var i = 0; i < this._operations.length; i++)
{
var op = this.operations[i];
var op = this._operations[i];
var row = op.row;
if (op.type & Db.Model.Operation.DELETE
@ -909,8 +943,8 @@ Db.Model.implement
,_resetOperations: function ()
{
this.operations = [];
this.operationsMap = {};
this._operations = [];
this._operationsMap = {};
}
/*
@ -947,12 +981,13 @@ Db.Model.implement
**/
,sortByName: function (columnName, way)
{
this._requestedSortIndex = -1;
this._requestedSortName = columnName;
var index = this.getColumnIndex (columnName);
if (index != -1)
this.sort (index, way);
else
console.warn ('Db.Model: Column %s doesn\'t exist', columnName);
this._sort (index, way);
}
/**
@ -963,28 +998,40 @@ Db.Model.implement
**/
,sort: function (column, way)
{
this._requestedSortIndex = column;
this._requestedSortName = null;
if (!this.checkColExists (column))
return;
this._setStatus (Db.Model.Status.LOADING);
if (column !== this.sortColumn)
this._sort (column, way);
}
,_sort: function (column, way)
{
this._setStatus (Db.Model.Status.LOADING);
this._realSort (column, way);
this._setStatus (Db.Model.Status.READY);
}
,_realSort: function (column, way)
{
if (column !== this._sortColumn)
{
if (way === Db.Model.SortWay.DESC)
var sortFunction = this.sortFunctionDesc;
else
var sortFunction = this.sortFunctionAsc;
this.data.sort (sortFunction.bind (this, column));
}
else if (way !== this.sortWay)
else if (way !== this._sortWay)
this.data.reverse ();
this.sortColumn = column;
this.sortWay = way;
this._sortColumn = column;
this._sortWay = way;
this._refreshRowIndexes (0);
this._setStatus (Db.Model.Status.READY);
}
/**
@ -998,7 +1045,7 @@ Db.Model.implement
**/
,indexColumn: function (column)
{
this.requestedIndexes[column] = true;
this._requestedIndexes[column] = true;
if (this._status === Db.Model.Status.READY)
this._buildIndex (column);
@ -1026,7 +1073,7 @@ Db.Model.implement
index[data[i][columnIndex]] = i;
}
this.indexes[columnIndex] = index;
this._indexes[columnIndex] = index;
}
}
@ -1077,7 +1124,7 @@ Db.Model.implement
// Searchs the value using an internal index.
var index = this.indexes[col];
var index = this._indexes[col];
if (index)
{
@ -1168,7 +1215,7 @@ Db.Model.implement
,_createOperation: function (rowIndex)
{
var op = this.operationsMap[rowIndex];
var op = this._operationsMap[rowIndex];
if (!op)
{
@ -1176,8 +1223,8 @@ Db.Model.implement
type: 0,
row: this.data[rowIndex]
};
this.operations.push (op);
this.operationsMap[rowIndex] = op;
this._operations.push (op);
this._operationsMap[rowIndex] = op;
}
return op;

View File

@ -6,8 +6,7 @@
/* Font */
.vn-gui .welcome,
.vn-gui .supplant > span,
.vn-gui .user-info,
.vn-gui .menu-title,
.vn-gui .main-menu a
{
@ -28,18 +27,18 @@
box-shadow: 0 0.1em 0.1em rgba(1, 1, 1, 0.3);
height: 3.9em;
color: white;
/*
transition-property: left, background-color, transform;
transition-duration: 200ms;
transition-timing-function: linear;
*/
transition: transform 200ms ease-in-out;
-webkit-transition: transform 200ms ease-in-out;
transition-timing-function: ease-in-out;
/* transition: transform 100ms ease-in-out;
-webkit-transition: transform 100ms ease-in-out;*/
}
.vn-gui .menu-button
{
position: absolute;
left: 0;
display: none;
float: left;
border: none;
background-color: transparent;
padding: 0 .4em;
@ -64,7 +63,7 @@
font-weight: normal;
font-size: 1.4em;
padding: .7em .6em;
padding-right: 0;
padding-right: .3em;
margin: 0;
}
.vn-gui .navbar > .htk-spinner
@ -72,22 +71,6 @@
float: left;
margin: 1.05em .8em;
}
.vn-gui .exit
{
float: right;
padding: 0 .4em;
display: block;
height: 100%;
}
.vn-gui .exit:hover
{
background-color: rgba(0, 0, 0, .2);
}
.vn-gui .exit > img
{
height: 1.8em;
vertical-align: middle;
}
/* Action bar */
@ -106,12 +89,12 @@
}
.vn-gui .action-bar > div > *
{
float: left;
float: right;
}
.vn-gui .action-bar button
{
margin: 0;
padding: 1.15em .5em;
padding: 1.25em .5em;
}
.vn-gui .action-bar button:hover
{
@ -179,31 +162,34 @@
width: 12em;
margin-bottom: .6em;
}
.vn-gui .welcome
.vn-gui .user-info
{
display: block;
position: relative;
}
.vn-gui .user-info > span
{
max-width: 9em;
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
vertical-align: middle;
}
.vn-gui button.logout
{
float: right;
padding: .2em;
}
.vn-gui button.logout > img
{
height: 1.2em;
display: block;
}
.vn-gui .supplant
{
margin-top: .2em;
display: none;
}
.vn-gui .supplant > span
{
max-width: 10em;
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.vn-gui .supplant > button
{
float: right;
padding: .2em;
}
/* Test link */
@ -356,6 +342,7 @@
}
.vn-gui > .navbar
{
padding-left: 2.8em;
left: 0;
}
.vn-gui > .body

View File

@ -204,7 +204,7 @@ Vn.Gui = new Class
{
if (this._scrollTimeout === null)
this._scrollTimeout = setTimeout (
this._scrollTimeoutFunc.bind (this), 300);
this._scrollTimeoutFunc.bind (this), 150);
}
,_scrollTimeoutFunc: function ()

View File

@ -1,13 +1,10 @@
<vn>
<div id="main" class="vn-gui">
<div id="top-bar" class="navbar">
<div id="action-bar" class="action-bar"/>
<button id="menu-button" class="menu-button">
<img src="image/dark/menu.svg" alt="_Menu"/>
</button>
<button class="exit" on-click="onLogoutClick" title="_Exit">
<img src="image/dark/exit.svg" alt="_Exit"/>
</button>
<div id="action-bar" class="action-bar"/>
<div id="title" class="title"/>
<htk-spinner id="loader" class="loader dark"/>
</div>
@ -15,18 +12,26 @@
<div class="menu-overflow">
<div class="menu-header" id="menu-header">
<img class="logo" src="image/dark/logo.svg" alt="Verdnatura"/>
<div class="welcome" id="user-name"/>
<div id="supplant" class="supplant">
<span id="supplanted"/>
<button on-click="onSupplantExitClick" title="_Exit">
<div class="user-info">
<button class="logout" on-click="onLogoutClick" title="_Exit">
<img src="image/dark/exit.svg" alt="_Exit"/>
</button>
<span id="user-name"/>
</div>
<div id="supplant" class="supplant user-info">
<button class="logout" on-click="onSupplantExitClick" title="_Exit">
<img src="image/dark/exit.svg" alt="_Exit"/>
</button>
<span id="supplanted"/>
</div>
</div>
<a id="test-link" class="test-link" href="#"></a>
<ul id="main-menu" class="main-menu"></ul>
</div>
<div class="links">
<a target="_blank" href="https://blog.verdnatura.es/">
<img alt="Blogger" src="image/blog.svg" title="Blog"/>
</a>
<a target="_blank" href="http://verdnaturacomunicacion.blogspot.com.es/">
<img alt="Blogger" src="image/blogger.svg" title="Blogger"/>
</a>

View File

@ -8,7 +8,7 @@ body
.vn-login
{
color: #333;
font-size: 1.2em;
font-size: 1.1em;
font-weight: normal;
height: inherit;
}

View File

@ -40,6 +40,9 @@
<p><t>Login phone</t></p>
</div>
<div class="links">
<a target="_blank" href="https://blog.verdnatura.es/">
<img alt="Blogger" src="image/blog.svg" title="Blog"/>
</a>
<a target="_blank" href="http://verdnaturacomunicacion.blogspot.com.es/">
<img alt="Blogger" src="image/blogger.svg" title="Blogger"/>
</a>

View File

@ -8,7 +8,7 @@
}
/* Desktop - Laptop 1360x768 */
@media (max-resolution: 119dpi) and (min-device-width: 1340px)
@media (max-resolution: 119dpi) and (min-device-width: 1340px) and (max-device-width: 1899px)
{
body { font-size: 12pt; }
}
@ -19,22 +19,46 @@
body { font-size: 13pt; }
}
/* Mobile - HD 720x1280 */ /* 384/640 */
/* Mobile - Low DPI */
@media
(min-resolution: 120dpi) and (orientation: portrait) and (min-device-width: 360px),
(min-resolution: 120dpi) and (orientation: landscape) and (min-device-width: 635px)
(min-resolution: 120dpi),
(-webkit-min-device-pixel-ratio: 1.5)
{
body { font-size: 9pt; }
}
@media
(min-resolution: 144dpi),
(-webkit-min-device-pixel-ratio: 1.5)
{
body { font-size: 11pt; }
}
/* Mobile - Lower than HD */
/* Mobile - Normal DPI */
@media
(min-resolution: 120dpi) and (orientation: portrait) and (max-device-width: 359px),
(min-resolution: 120dpi) and (orientation: landscape) and (max-device-width: 634px)
(max-device-width: 383px) and (min-resolution: 192dpi),
(max-device-width: 383px) and (-webkit-min-device-pixel-ratio: 2)
{
body { font-size: 9pt; }
body { font-size: 10pt; }
}
@media
(min-device-width: 384px) and (min-resolution: 192dpi),
(min-device-width: 384px) and (-webkit-min-device-pixel-ratio: 2)
{
body { font-size: 11pt; }
}
/* Mobile - High DPI */
@media
(max-device-width: 411px) and (min-resolution: 249dpi),
(max-device-width: 411px) and (-webkit-min-device-pixel-ratio: 3)
{
body { font-size: 10pt; }
}
@media
(min-device-width: 412px) and (min-resolution: 249dpi),
(min-device-width: 412px) and (-webkit-min-device-pixel-ratio: 3)
{
body { font-size: 11pt; }
}
/* Global */
@ -96,7 +120,7 @@ a img:hover
h1, h2, h3, h4, h5, h6
{
margin: 0;
padding: 0.2em;
padding: .2em 0;
}
h1
{
@ -104,7 +128,7 @@ h1
}
h2
{
font-size: 1.3em;
font-size: 1.2em;
}
p
{

View File

@ -207,8 +207,12 @@ Htk.Select = new Class
,_refreshShowText: function ()
{
var model = this._model;
if (this._row !== -1)
var showText = this._model.getByIndex (this._row, this.showColumnIndex);
var showText = model.getByIndex (this._row, this.showColumnIndex);
else if (model && model.status === Db.Model.Status.LOADING)
var showText = _('Loading...');
else if (this._placeholder)
var showText = this._placeholder;
else
@ -225,7 +229,7 @@ Htk.Select = new Class
if (this._popup)
this._popup.reset ();
if (model.ready)
if (model && model.ready)
{
this._selectOption ();
this.signalEmit ('ready');

View File

@ -7,18 +7,6 @@ Sql.FilterItem = new Class
,Tag: 'sql-filter-item'
,Properties:
{
disabled:
{
type: Boolean
,set: function (x)
{
this._disabled = x;
}
,get: function ()
{
return this._disabled;
}
},
primary:
{
type: Boolean
@ -26,12 +14,4 @@ Sql.FilterItem = new Class
}
,primary: true
,isReady: function ()
{
if (this._disabled)
return false;
return this.parent ();
}
});

View File

@ -29,12 +29,14 @@ Sql.String = new Class
return this.query.replace (this.regexp, this.replaceFunc.bind (this, batch));
}
,findHolders: function (batch)
,findHolders: function ()
{
var ids = this.query.match (this.regexp);
if (ids)
for (var i = 0; i < ids.length; i++)
batch.add (ids[i].substr (1));
ids[i] = ids[i].substr (1);
return ids;
}
});

View File

@ -120,7 +120,7 @@ Vn.HashParam = new Class
this._refreshParam ();
if (signal)
this.signalEmit ('changed');
this.signalEmit ('changed', newValue);
}
,_refreshParam: function ()

View File

@ -27,7 +27,7 @@ Vn.Param = new Class
this.masterLock = false;
}
this.signalEmit ('changed');
this.signalEmit ('changed', this._value);
}
,get: function ()
{

View File

@ -3,22 +3,28 @@
,"SearchResults": "Resultats de cerca"
,"SelectFamily": "Selecciona una família"
,"Select filter from right menu": "Selecciona un filtre en el menú de la dreta"
,"Choose filter from right menu": "Tria un filtre en el menú de la dreta"
,"Choose a realm": "Tria un regne"
,"ArticleNotFound": "Artcle no trobat"
,"ArticleNotAvailable": "Article no disponible"
,"List view": "Vista de lista"
,"Grid view": "Vista de reixeta"
,"Switch view": "Canviar vista"
,"StartOrder": "Començar comanda"
,"ShoppingBasket": "Cistella de la compra"
,"%A, %e of %B": "%A, %e de %B"
,"Agency": "Agència"
,"Warehouse": "Magatzem"
,"Filter by": "Filtrar per"
,"Order by": "Ordenar per"
,"Search": "Cercar"
,"Change": "Cambiar"
,"Order by": "Ordenar"
,"Available": "Displonible"
,"Size": "Mesura"
,"Size": "Mida"
,"Realm": "Regne"
,"Family": "Família"
,"Color": "Color"
@ -27,17 +33,15 @@
,"Category": "Categoria"
,"Remove filters": "Esborrar filtres"
,"Amount": "Quant"
,"Aval": "Disp"
,"Price": "Precio"
,"Amount": "Quantitat"
,"Name": "Nom"
,"S1": "Mes"
,"S2": "S2"
,"Stems": "Tiges"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origen"
,"Price": "Preu"
,"%.0d Units": "%.0d Unitats"
,"Lower price": "Preu més baix"
,"Higher price": "Preu més alt"
,"Lower size": "Mida més petita"
,"Higher size": "Mida més gran"
,", %.0d Units": ", %.0d Unitats"
,"from": "des de"
,"from %.2d€": "des de %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Search results"
,"SelectFamily": "Select family"
,"Select filter from right menu": "Select a filter from the right menu"
,"Choose filter from right menu": "Choose a filter from the right menu"
,"Choose a realm": "Choose a realm"
,"ArticleNotFound": "Item not found"
,"ArticleNotAvailable": "Item not available"
,"List view": "List view"
,"Grid view": "Grid view"
,"Switch view": "Switch view"
,"StartOrder": "Start order"
,"ShoppingBasket": "Shopping basket"
,"%A, %e of %B": "%A, %e of %B"
,"Agency": "Agency"
,"Warehouse": "Warehouse"
,"Filter by": "Filter by"
,"Order by": "Order by"
,"Search": "Search"
,"Change": "Change"
,"Order": "Order"
,"Available": "Available"
,"Size": "Size"
,"Realm": "Realm"
@ -27,17 +33,15 @@
,"Category": "Category"
,"Remove filters": "Remove filters"
,"Amount": "Amount"
,"Aval": "Aval"
,"Name": "Name"
,"S1": "Siz"
,"S2": "S2"
,"Stems": "Stems"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origin"
,"Price": "Price"
,"%.0d Units": "%.0d Units"
,"Amount": "Amount"
,"Name": "Name"
,"Pack": "Pack"
,"Lower price": "Lower price"
,"Higher price": "Higher price"
,"Lower size": "Lower size"
,"Higher size": "Higher size"
,", %.0d Units": ", %.0d Units"
,"from": "from"
,"from %.2d€": "from %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Resultados de búsqueda"
,"SelectFamily": "Selecciona una familia"
,"Select filter from right menu": "Selecciona un filtro en el menú de la derecha"
,"Choose filter from right menu": "Elige un filtro en el menú de la derecha"
,"Choose a realm": "Elige un reino"
,"ArticleNotFound": "Artículo no encontrado"
,"ArticleNotAvailable": "Artículo no disponible"
,"List view": "Vista de lista"
,"Grid view": "Vista de rejilla"
,"Switch view": "Cambiar vista"
,"StartOrder": "Empezar pedido"
,"ShoppingBasket": "Cesta de la compra"
,"%A, %e of %B": "%A, %e de %B"
,"Agency": "Agencia"
,"Warehouse": "Almacén"
,"Filter by": "Filtrar por"
,"Order by": "Ordenar por"
,"Search": "Buscar"
,"Change": "Cambiar"
,"Order": "Ordenar"
,"Available": "Disponible"
,"Size": "Medida"
,"Realm": "Reino"
@ -27,17 +33,15 @@
,"Category": "Categoría"
,"Remove filters": "Quitar filtros"
,"Amount": "Cant"
,"Aval": "Disp"
,"Name": "Nombre"
,"S1": "Med"
,"S2": "S2"
,"Stems": "Tallos"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origen"
,"Price": "Precio"
,"%.0d Units": "%.0d Unidades"
,"Amount": "Cantidad"
,"Name": "Nombre"
,"Pack": "Pack"
,"Lower price": "Precio más bajo"
,"Higher price": "Precio más alto"
,"Lower size": "Medida más pequeña"
,"Higher size": "Medida más grande"
,", %.0d Units": ", %.0d Unidades"
,"from": "desde"
,"from %.2d€": "desde %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Résultats de la recherche"
,"SelectFamily": "Choisissez une famille"
,"Select filter from right menu": "Sélectionnez un filtre dans le menu de droite"
,"Choose filter from right menu": "Choisissez un filtre dans le menu de droite"
,"Choose a realm": "Choisissez un royaume"
,"ArticleNotFound": "Article non trouvé"
,"ArticleNotAvailable": "Article non disponible"
,"List view": "Liste voir"
,"Grid view": "Grille voir"
,"Switch view": "Changer vue"
,"StartOrder": "Acheter"
,"ShoppingBasket": "Mon panier"
,"%A, %e of %B": "%A, %e de %B"
,"Agency": "Agence"
,"Warehouse": "Entrepôt"
,"Filter by": "Filtrer par"
,"Order by": "Trier par"
,"Search": "Recherche"
,"Change": "Modifier"
,"Order": "Ordre"
,"Available": "Displonible"
,"Size": "Mesure"
,"Realm": "Famille"
@ -27,17 +33,15 @@
,"Category": "Catégorie"
,"Remove filters": "Retirer les filtres"
,"Amount": "Quant"
,"Aval": "Disp"
,"Name": "Nom"
,"S1": "Mes"
,"S2": "S2"
,"Stems": "Tige"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origine"
,"Price": "Prix"
,"%.0d Units": "%.0d Unités"
,"Amount": "Quantité"
,"Name": "Nom"
,"Pack": "Pack"
,"Lower price": "Prix le plus bas"
,"Higher price": "Prix le plus élevé"
,"Lower size": "Taille le plus bas"
,"Higher size": "Taille le plus élevé"
,", %.0d Units": ", %.0d Unités"
,"from": "pour"
,"from %.2d€": "pour %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Search results"
,"SelectFamily": "Select family"
,"Select filter from right menu": "Зөв цэс нь шүүлтүүр сонгоно уу"
,"Choose filter from right menu": "Choose a filter from the right menu"
,"Choose a realm": "Choose a realm"
,"ArticleNotFound": "Item not found"
,"ArticleNotAvailable": "Item not available"
,"List view": "List view"
,"Grid view": "Grid view"
,"Switch view": "Switch view"
,"StartOrder": "Start order"
,"ShoppingBasket": "Shopping basket"
,"Agency": "газар"
,"Warehouse": "Агуулахын"
,"%A, %e of %B": "%A, %e of %B"
,"Agency": "Agency"
,"Warehouse": "Warehouse"
,"Filter by": "Filter by"
,"Order by": "Order by"
,"Search": "Search"
,"Change": "Change"
,"Order": "Order"
,"Available": "Available"
,"Size": "Size"
,"Realm": "Realm"
@ -27,17 +33,15 @@
,"Category": "Category"
,"Remove filters": "Remove filters"
,"Amount": "Amount"
,"Aval": "Aval"
,"Name": "Name"
,"S1": "Siz"
,"S2": "S2"
,"Stems": "Stems"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origin"
,"Price": "Price"
,"%.0d Units": "%.0d Units"
,"Amount": "Amount"
,"Name": "Name"
,"Pack": "Pack"
,"Lower price": "Lower price"
,"Higher price": "Higher price"
,"Lower size": "Lower size"
,"Higher size": "Higher size"
,", %.0d Units": ", %.0d Units"
,"from": "from"
,"from %.2d€": "from %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Resultados de busca"
,"SelectFamily": "Seleccione uma família"
,"Select filter from right menu": "Seleccione um filtro no menú da direita"
,"Choose filter from right menu": "Escolha um filtro no menú da direita"
,"Choose a realm": "Escolha um reino"
,"ArticleNotFound": "Ítem não encontrado"
,"ArticleNotAvailable": "Ítem não disponível"
,"List view": "Ver como lista"
,"Grid view": "Vista em modo de grade"
,"Switch view": "Modificar vista"
,"StartOrder": "Iniciar pedido"
,"ShoppingBasket": "Cesta da compra"
,"%A, %e of %B": "%A, %e of %B"
,"Agency": "Agência"
,"Warehouse": "Armazém"
,"Filter by": "Filtrar por"
,"Order by": "Ordenar por"
,"Search": "Buscar"
,"Change": "Modificar"
,"Order": "Organizar"
,"Available": "Disponível"
,"Size": "Medida"
,"Realm": "Reino"
@ -27,17 +33,15 @@
,"Category": "Categoria"
,"Remove filters": "Eliminar filtros"
,"Amount": "Qtde"
,"Aval": "Disp"
,"Name": "Nome"
,"S1": "Med"
,"S2": "S2"
,"Stems": "Talos"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Orígem"
,"Price": "Preço"
,"%.0d Units": "%.0d Unidades "
,"Amount": "Quantidade"
,"Name": "Nome"
,"Pack": "Pack"
,"Lower price": "Menor preço"
,"Higher price": "Maior preço"
,"Lower size": "Tamanho menor"
,"Higher size": "Tamanho maior"
,", %.0d Units": ", %.0d Unidades"
,"from": "desde"
,"from %.2d€": "desde %.2d€"