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. * Initial Release.

View File

@ -1,6 +1,17 @@
<?php <?php
/** /**
* Configuration file. Be careful to respect the PHP syntax. * 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 = [ $conf = [
@ -9,16 +20,12 @@ $conf = [
**/ **/
'db' => [ 'db' => [
'host' => 'db.verdnatura.es' 'host' => 'db.verdnatura.es'
,'port' => 3306
,'schema' => 'hedera-web' ,'schema' => 'hedera-web'
,'user' => 'hedera-web' ,'user' => 'hedera-web'
,'pass' => 'base64pass' ,'pass' => 'base64pass'
] ]
/**
* The default language.
**/
,'defaultLang' => 'es'
]; ];
?> ?>

View File

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

View File

@ -16,12 +16,13 @@ class Web
{ {
static $sysConn = NULL; static $sysConn = NULL;
static $conn = NULL; static $conn = NULL;
static $confIncluded = FALSE;
/** /**
* Initializes the Hedera web library. * Initializes the Hedera web library.
**/ **/
static function init () static function init ()
{ {
if (self::isHttps ()) if (self::isHttps ())
ini_set ('session.cookie_secure', TRUE); ini_set ('session.cookie_secure', TRUE);
@ -83,6 +84,8 @@ class Web
{ {
global $conf; global $conf;
self::includeConf ();
if (self::$sysConn) if (self::$sysConn)
return; return;
@ -109,9 +112,41 @@ class Web
return (int) filectime (__FILE__); 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 () static function login ()
{ {
global $conf; global $conf;
self::includeConf ();
$wasLoged = Auth::isLogged (); $wasLoged = Auth::isLogged ();
$useCookies = TRUE; $useCookies = TRUE;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,6 +12,15 @@
<h1><t>LastOrders</t></h1> <h1><t>LastOrders</t></h1>
</div> </div>
<div id="actions"> <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"> <div class="balance">
<span class="label"> <span class="label">
<t>Balance:</t> <t>Balance:</t>
@ -33,15 +42,6 @@
class="info" class="info"
alt="Info"/> alt="Info"/>
</div> </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>
<div id="form" class="orders"> <div id="form" class="orders">
<div class="box confirmed"> <div class="box confirmed">

View File

@ -25,16 +25,16 @@
<h1><t>AddEditNew</t></h1> <h1><t>AddEditNew</t></h1>
</div> </div>
<div id="actions"> <div id="actions">
<htk-button
image="image/dark/close.svg"
tip="_Return"
on-click="onReturnClick"
showText="true"/>
<htk-button <htk-button
image="image/dark/ok.svg" image="image/dark/ok.svg"
tip="_Accept" tip="_Accept"
on-click="onAcceptClick" on-click="onAcceptClick"
showText="true"/> showText="true"/>
<htk-button
image="image/dark/close.svg"
tip="_Return"
on-click="onReturnClick"
showText="true"/>
</div> </div>
<div id="form" class="new"> <div id="form" class="new">
<div class="box"> <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-width="1920"
inkscape:window-x="1920" inkscape:window-x="1920"
inkscape:window-y="27" inkscape:window-y="27"
inkscape:zoom="51.5"> inkscape:zoom="51.6875">
<inkscape:grid <inkscape:grid
empspacing="2" empspacing="2"
enabled="true" enabled="true"
@ -124,86 +124,90 @@
inkscape:label="actions" inkscape:label="actions"
style="display:inline" style="display:inline"
transform="translate(-61.0004,-867)"> transform="translate(-61.0004,-867)">
<rect <g
height="2" id="g4152"
id="rect13363" transform="matrix(1.2,0,0,1.2,-13.799838,-175)">
rx="0.38461545" <rect
ry="0.37878788" y="870"
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" x="64.000198"
width="2.0000002" width="2.0000002"
x="64.000198" 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"
y="870" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13363"
id="rect13365" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="870"
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" x="68.000198"
width="2.0000002" width="2.0000002"
x="68.000198" 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"
y="870" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13365"
id="rect13367" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="870"
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" x="72.000198"
width="2.0000002" width="2.0000002"
x="72.000198" 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"
y="870" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13367"
id="rect13369" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="874.01562"
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" x="64.000198"
width="2.0000002" width="2.0000002"
x="64.000198" 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"
y="874.01562" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13369"
id="rect13371" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="874.01562"
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" x="68.000198"
width="2.0000002" width="2.0000002"
x="68.000198" 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"
y="874.01562" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13371"
id="rect13373" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="874.01562"
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" x="72.000198"
width="2.0000002" width="2.0000002"
x="72.000198" 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"
y="874.01562" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13373"
id="rect13375" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="878"
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" x="64.000198"
width="2.0000002" width="2.0000002"
x="64.000198" 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"
y="878" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13375"
id="rect13377" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="878"
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" x="68.000198"
width="2.0000002" width="2.0000002"
x="68.000198" 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"
y="878" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect13377"
id="rect13379" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="878"
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" x="72.000198"
width="2.0000002" width="2.0000002"
x="72.000198" 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"
y="878" /> ry="0.37878788"
rx="0.38461545"
id="rect13379"
height="2" />
</g>
</g> </g>
</svg> </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-width="1920"
inkscape:window-x="1920" inkscape:window-x="1920"
inkscape:window-y="27" inkscape:window-y="27"
inkscape:zoom="51.5"> inkscape:zoom="51.6875">
<inkscape:grid <inkscape:grid
dotted="false" dotted="false"
empspacing="2" empspacing="2"
@ -133,56 +133,60 @@
inkscape:label="actions" inkscape:label="actions"
style="display:inline" style="display:inline"
transform="translate(-41.000401,-867)"> transform="translate(-41.000401,-867)">
<rect <g
height="2.0002136" id="g4149"
id="rect5356" transform="matrix(1.1999999,0,0,1.1999999,-9.7998324,-174.99977)">
inkscape:label="a" <rect
style="color:#bebebe;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" y="869.99976"
width="7.0000005" x="47.000198"
x="47.000198" width="7.0000005"
y="869.99976" /> style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
<rect inkscape:label="a"
height="2.0002136" id="rect5356"
id="rect5358" height="2.0002136" />
inkscape:label="a" <rect
style="color:#bebebe;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" y="873.99976"
width="7.0000005" x="47.000198"
x="47.000198" width="7.0000005"
y="873.99976" /> style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
<rect inkscape:label="a"
height="2.0002136" id="rect5358"
id="rect5360" height="2.0002136" />
inkscape:label="a" <rect
style="color:#bebebe;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" y="877.99976"
width="7.0000005" x="47.000198"
x="47.000198" width="7.0000005"
y="877.99976" /> style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
<rect inkscape:label="a"
height="2" id="rect5360"
id="rect5398" height="2.0002136" />
rx="0.38461545" <rect
ry="0.37878788" y="870"
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" x="44.000198"
width="2.0000002" width="2.0000002"
x="44.000198" 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"
y="870" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect5398"
id="rect5401" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="874.01562"
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" x="44.000198"
width="2.0000002" width="2.0000002"
x="44.000198" 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"
y="874.01562" /> ry="0.37878788"
<rect rx="0.38461545"
height="2" id="rect5401"
id="rect5403" height="2" />
rx="0.38461545" <rect
ry="0.37878788" y="878"
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" x="44.000198"
width="2.0000002" width="2.0000002"
x="44.000198" 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"
y="878" /> ry="0.37878788"
rx="0.38461545"
id="rect5403"
height="2" />
</g>
</g> </g>
</svg> </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) ,set: function (x)
{ {
this._mainTable = null; this._mainTable = null;
this.requestedMainTable = x; this._requestedMainTable = x;
this._refreshMainTable (); this._refreshMainTable ();
} }
,get: function () ,get: function ()
@ -147,7 +147,7 @@ Db.Model.implement
,set: function (x) ,set: function (x)
{ {
this._updatable = false; this._updatable = false;
this.requestedUpdatable = x; this._requestedUpdatable = x;
this._refreshUpdatable (); this._refreshUpdatable ();
} }
,get: function () ,get: function ()
@ -220,16 +220,19 @@ Db.Model.implement
,columnMap: null ,columnMap: null
,_updatable: false ,_updatable: false
,sortColumn: -1 ,_requestedSortIndex: -1
,sortWay: null ,_requestedSortName: null
,requestedIndexes: {} ,_sortColumn: -1
,indexes: [] ,_sortWay: null
,requestedUpdatable: false ,_requestedIndexes: {}
,operations: null ,_indexes: []
,operationsMap: null
,defaults: [] ,_requestedUpdatable: false
,requestedMainTable: null ,_operations: null
,_operationsMap: null
,_defaults: []
,_requestedMainTable: null
,initialize: function (props) ,initialize: function (props)
{ {
@ -261,11 +264,31 @@ Db.Model.implement
**/ **/
,refresh: function () ,refresh: function ()
{ {
if (this._stmt && this._batch) var ready = false;
this._stmt.findHolders (this._batch);
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 for (var i = 0; i < ids.length; i++)
&& (!this._batch || this._batch.isReady ())) if (!this._batch.get (ids[i]))
{
ready = false;
break;
}
}
}
else
ready = true;
}
if (ready)
{ {
this._setStatus (Db.Model.Status.LOADING); this._setStatus (Db.Model.Status.LOADING);
this._conn.execStmt (this._stmt, this._selectDone.bind (this), this._batch); this._conn.execStmt (this._stmt, this._selectDone.bind (this), this._batch);
@ -293,7 +316,6 @@ Db.Model.implement
if (dataResult && typeof dataResult === 'object') if (dataResult && typeof dataResult === 'object')
{ {
this.sortColumn = -1;
this.data = dataResult.data; this.data = dataResult.data;
this.tables = dataResult.tables; this.tables = dataResult.tables;
this.columns = dataResult.columns; this.columns = dataResult.columns;
@ -301,9 +323,20 @@ Db.Model.implement
this._repairColumns (); this._repairColumns ();
this._refreshRowIndexes (0); this._refreshRowIndexes (0);
this._refreshMainTable (); this._refreshMainTable ();
for (column in this.requestedIndexes) for (column in this._requestedIndexes)
this._buildIndex (column); 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); this._setStatus (Db.Model.Status.READY);
} }
@ -316,12 +349,12 @@ Db.Model.implement
for (var i = start; i < this.data.length; i++) for (var i = start; i < this.data.length; i++)
this.data[i].index = 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++) for (var i = 0; i < this._operations.length; i++)
this.operationsMap[i] = this.operations[i]; this._operationsMap[i] = this._operations[i];
} }
} }
@ -331,14 +364,15 @@ Db.Model.implement
this.tables = null; this.tables = null;
this.columns = null; this.columns = null;
this.columnMap = null; this.columnMap = null;
this.indexes = []; this._sortColumn = -1;
this._indexes = [];
this._resetOperations (); this._resetOperations ();
} }
,_refreshUpdatable: function () ,_refreshUpdatable: function ()
{ {
var oldValue = this._updatable; var oldValue = this._updatable;
this._updatable = this._mainTable !== null && this.requestedUpdatable; this._updatable = this._mainTable !== null && this._requestedUpdatable;
if (oldValue != this._updatable) if (oldValue != this._updatable)
this.signalEmit ('updatable-changed'); this.signalEmit ('updatable-changed');
@ -352,8 +386,8 @@ Db.Model.implement
if (tables) if (tables)
for (var i = 0; i < tables.length; i++) for (var i = 0; i < tables.length; i++)
if (tables[i].pks.length > 0) if (tables[i].pks.length > 0)
if (!this.requestedMainTable if (!this._requestedMainTable
|| tables[i].name === this.requestedMainTable) || tables[i].name === this._requestedMainTable)
{ {
newMainTable = i; newMainTable = i;
break; break;
@ -372,7 +406,7 @@ Db.Model.implement
**/ **/
,setDefault: function (field, table, expr) ,setDefault: function (field, table, expr)
{ {
this.defaults.push this._defaults.push
({ ({
field: field field: field
,table: table ,table: table
@ -389,7 +423,7 @@ Db.Model.implement
**/ **/
,setDefaultFromValue: function (field, table, value) ,setDefaultFromValue: function (field, table, value)
{ {
this.defaults.push this._defaults.push
({ ({
field: field field: field
,table: table ,table: table
@ -407,7 +441,7 @@ Db.Model.implement
**/ **/
,setDefaultFromColumn: function (field, table, srcColumn) ,setDefaultFromColumn: function (field, table, srcColumn)
{ {
this.defaults.push this._defaults.push
({ ({
field: field field: field
,table: table ,table: table
@ -591,7 +625,7 @@ Db.Model.implement
var op = this._createOperation (rowIndex); var op = this._createOperation (rowIndex);
op.type |= Db.Model.Operation.DELETE; op.type |= Db.Model.Operation.DELETE;
if (!this.requestedMainTable) if (!this._requestedMainTable)
{ {
this.signalEmit ('row-deleted-before', rowIndex); this.signalEmit ('row-deleted-before', rowIndex);
this.data.splice (rowIndex, 1); this.data.splice (rowIndex, 1);
@ -659,7 +693,7 @@ Db.Model.implement
**/ **/
,performOperations: function () ,performOperations: function ()
{ {
var ops = this.operations; var ops = this._operations;
if (ops.length === 0) if (ops.length === 0)
{ {
@ -742,9 +776,9 @@ Db.Model.implement
var dmlQuery = new Sql.Insert (); var dmlQuery = new Sql.Insert ();
var table = this.tables[tableIndex]; 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) if (def.table === table.name)
{ {
@ -798,10 +832,10 @@ Db.Model.implement
{ {
if (resultSet.getError ()) if (resultSet.getError ())
{ {
this.operations = this.operations.concat (ops); this._operations = this._operations.concat (ops);
for (var i = 0; i < ops.length; i++) 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; return;
} }
@ -874,9 +908,9 @@ Db.Model.implement
**/ **/
,reverseOperations: function () ,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; var row = op.row;
if (op.type & Db.Model.Operation.DELETE if (op.type & Db.Model.Operation.DELETE
@ -909,8 +943,8 @@ Db.Model.implement
,_resetOperations: function () ,_resetOperations: function ()
{ {
this.operations = []; this._operations = [];
this.operationsMap = {}; this._operationsMap = {};
} }
/* /*
@ -947,12 +981,13 @@ Db.Model.implement
**/ **/
,sortByName: function (columnName, way) ,sortByName: function (columnName, way)
{ {
this._requestedSortIndex = -1;
this._requestedSortName = columnName;
var index = this.getColumnIndex (columnName); var index = this.getColumnIndex (columnName);
if (index != -1) if (index != -1)
this.sort (index, way); this._sort (index, way);
else
console.warn ('Db.Model: Column %s doesn\'t exist', columnName);
} }
/** /**
@ -963,28 +998,40 @@ Db.Model.implement
**/ **/
,sort: function (column, way) ,sort: function (column, way)
{ {
this._requestedSortIndex = column;
this._requestedSortName = null;
if (!this.checkColExists (column)) if (!this.checkColExists (column))
return; 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) if (way === Db.Model.SortWay.DESC)
var sortFunction = this.sortFunctionDesc; var sortFunction = this.sortFunctionDesc;
else else
var sortFunction = this.sortFunctionAsc; var sortFunction = this.sortFunctionAsc;
this.data.sort (sortFunction.bind (this, column)); this.data.sort (sortFunction.bind (this, column));
} }
else if (way !== this.sortWay) else if (way !== this._sortWay)
this.data.reverse (); this.data.reverse ();
this.sortColumn = column; this._sortColumn = column;
this.sortWay = way; this._sortWay = way;
this._refreshRowIndexes (0); this._refreshRowIndexes (0);
this._setStatus (Db.Model.Status.READY);
} }
/** /**
@ -998,7 +1045,7 @@ Db.Model.implement
**/ **/
,indexColumn: function (column) ,indexColumn: function (column)
{ {
this.requestedIndexes[column] = true; this._requestedIndexes[column] = true;
if (this._status === Db.Model.Status.READY) if (this._status === Db.Model.Status.READY)
this._buildIndex (column); this._buildIndex (column);
@ -1026,7 +1073,7 @@ Db.Model.implement
index[data[i][columnIndex]] = i; 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. // Searchs the value using an internal index.
var index = this.indexes[col]; var index = this._indexes[col];
if (index) if (index)
{ {
@ -1168,7 +1215,7 @@ Db.Model.implement
,_createOperation: function (rowIndex) ,_createOperation: function (rowIndex)
{ {
var op = this.operationsMap[rowIndex]; var op = this._operationsMap[rowIndex];
if (!op) if (!op)
{ {
@ -1176,8 +1223,8 @@ Db.Model.implement
type: 0, type: 0,
row: this.data[rowIndex] row: this.data[rowIndex]
}; };
this.operations.push (op); this._operations.push (op);
this.operationsMap[rowIndex] = op; this._operationsMap[rowIndex] = op;
} }
return op; return op;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -8,7 +8,7 @@
} }
/* Desktop - Laptop 1360x768 */ /* 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; } body { font-size: 12pt; }
} }
@ -19,22 +19,46 @@
body { font-size: 13pt; } body { font-size: 13pt; }
} }
/* Mobile - HD 720x1280 */ /* 384/640 */ /* Mobile - Low DPI */
@media @media
(min-resolution: 120dpi) and (orientation: portrait) and (min-device-width: 360px), (min-resolution: 120dpi),
(min-resolution: 120dpi) and (orientation: landscape) and (min-device-width: 635px) (-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; } body { font-size: 11pt; }
} }
/* Mobile - Lower than HD */ /* Mobile - Normal DPI */
@media @media
(min-resolution: 120dpi) and (orientation: portrait) and (max-device-width: 359px), (max-device-width: 383px) and (min-resolution: 192dpi),
(min-resolution: 120dpi) and (orientation: landscape) and (max-device-width: 634px) (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 */ /* Global */
@ -96,7 +120,7 @@ a img:hover
h1, h2, h3, h4, h5, h6 h1, h2, h3, h4, h5, h6
{ {
margin: 0; margin: 0;
padding: 0.2em; padding: .2em 0;
} }
h1 h1
{ {
@ -104,7 +128,7 @@ h1
} }
h2 h2
{ {
font-size: 1.3em; font-size: 1.2em;
} }
p p
{ {

View File

@ -207,8 +207,12 @@ Htk.Select = new Class
,_refreshShowText: function () ,_refreshShowText: function ()
{ {
var model = this._model;
if (this._row !== -1) 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) else if (this._placeholder)
var showText = this._placeholder; var showText = this._placeholder;
else else
@ -225,7 +229,7 @@ Htk.Select = new Class
if (this._popup) if (this._popup)
this._popup.reset (); this._popup.reset ();
if (model.ready) if (model && model.ready)
{ {
this._selectOption (); this._selectOption ();
this.signalEmit ('ready'); this.signalEmit ('ready');

View File

@ -7,18 +7,6 @@ Sql.FilterItem = new Class
,Tag: 'sql-filter-item' ,Tag: 'sql-filter-item'
,Properties: ,Properties:
{ {
disabled:
{
type: Boolean
,set: function (x)
{
this._disabled = x;
}
,get: function ()
{
return this._disabled;
}
},
primary: primary:
{ {
type: Boolean type: Boolean
@ -26,12 +14,4 @@ Sql.FilterItem = new Class
} }
,primary: true ,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)); return this.query.replace (this.regexp, this.replaceFunc.bind (this, batch));
} }
,findHolders: function (batch) ,findHolders: function ()
{ {
var ids = this.query.match (this.regexp); var ids = this.query.match (this.regexp);
if (ids) if (ids)
for (var i = 0; i < ids.length; i++) 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 (); this._refreshParam ();
if (signal) if (signal)
this.signalEmit ('changed'); this.signalEmit ('changed', newValue);
} }
,_refreshParam: function () ,_refreshParam: function ()

View File

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

View File

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

View File

@ -3,20 +3,26 @@
,"SearchResults": "Search results" ,"SearchResults": "Search results"
,"SelectFamily": "Select family" ,"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" ,"ArticleNotFound": "Item not found"
,"ArticleNotAvailable": "Item not available" ,"ArticleNotAvailable": "Item not available"
,"List view": "List view"
,"Grid view": "Grid view"
,"Switch view": "Switch view" ,"Switch view": "Switch view"
,"StartOrder": "Start order" ,"StartOrder": "Start order"
,"ShoppingBasket": "Shopping basket" ,"ShoppingBasket": "Shopping basket"
,"%A, %e of %B": "%A, %e of %B"
,"Agency": "Agency" ,"Agency": "Agency"
,"Warehouse": "Warehouse" ,"Warehouse": "Warehouse"
,"Filter by": "Filter by"
,"Order by": "Order by"
,"Search": "Search" ,"Search": "Search"
,"Change": "Change" ,"Change": "Change"
,"Order": "Order"
,"Available": "Available" ,"Available": "Available"
,"Size": "Size" ,"Size": "Size"
,"Realm": "Realm" ,"Realm": "Realm"
@ -27,17 +33,15 @@
,"Category": "Category" ,"Category": "Category"
,"Remove filters": "Remove filters" ,"Remove filters": "Remove filters"
,"Amount": "Amount"
,"Aval": "Aval"
,"Name": "Name"
,"S1": "Siz"
,"S2": "S2"
,"Stems": "Stems"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origin"
,"Price": "Price" ,"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": "from"
,"from %.2d€": "from %.2d€" ,"from %.2d€": "from %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Resultados de búsqueda" ,"SearchResults": "Resultados de búsqueda"
,"SelectFamily": "Selecciona una familia" ,"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" ,"ArticleNotFound": "Artículo no encontrado"
,"ArticleNotAvailable": "Artículo no disponible" ,"ArticleNotAvailable": "Artículo no disponible"
,"List view": "Vista de lista"
,"Grid view": "Vista de rejilla"
,"Switch view": "Cambiar vista" ,"Switch view": "Cambiar vista"
,"StartOrder": "Empezar pedido" ,"StartOrder": "Empezar pedido"
,"ShoppingBasket": "Cesta de la compra" ,"ShoppingBasket": "Cesta de la compra"
,"%A, %e of %B": "%A, %e de %B"
,"Agency": "Agencia" ,"Agency": "Agencia"
,"Warehouse": "Almacén" ,"Warehouse": "Almacén"
,"Filter by": "Filtrar por"
,"Order by": "Ordenar por"
,"Search": "Buscar" ,"Search": "Buscar"
,"Change": "Cambiar" ,"Change": "Cambiar"
,"Order": "Ordenar"
,"Available": "Disponible" ,"Available": "Disponible"
,"Size": "Medida" ,"Size": "Medida"
,"Realm": "Reino" ,"Realm": "Reino"
@ -27,17 +33,15 @@
,"Category": "Categoría" ,"Category": "Categoría"
,"Remove filters": "Quitar filtros" ,"Remove filters": "Quitar filtros"
,"Amount": "Cant"
,"Aval": "Disp"
,"Name": "Nombre"
,"S1": "Med"
,"S2": "S2"
,"Stems": "Tallos"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origen"
,"Price": "Precio" ,"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": "desde"
,"from %.2d€": "desde %.2d€" ,"from %.2d€": "desde %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Résultats de la recherche" ,"SearchResults": "Résultats de la recherche"
,"SelectFamily": "Choisissez une famille" ,"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é" ,"ArticleNotFound": "Article non trouvé"
,"ArticleNotAvailable": "Article non disponible" ,"ArticleNotAvailable": "Article non disponible"
,"List view": "Liste voir"
,"Grid view": "Grille voir"
,"Switch view": "Changer vue" ,"Switch view": "Changer vue"
,"StartOrder": "Acheter" ,"StartOrder": "Acheter"
,"ShoppingBasket": "Mon panier" ,"ShoppingBasket": "Mon panier"
,"%A, %e of %B": "%A, %e de %B"
,"Agency": "Agence" ,"Agency": "Agence"
,"Warehouse": "Entrepôt" ,"Warehouse": "Entrepôt"
,"Filter by": "Filtrer par"
,"Order by": "Trier par"
,"Search": "Recherche" ,"Search": "Recherche"
,"Change": "Modifier" ,"Change": "Modifier"
,"Order": "Ordre"
,"Available": "Displonible" ,"Available": "Displonible"
,"Size": "Mesure" ,"Size": "Mesure"
,"Realm": "Famille" ,"Realm": "Famille"
@ -27,17 +33,15 @@
,"Category": "Catégorie" ,"Category": "Catégorie"
,"Remove filters": "Retirer les filtres" ,"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" ,"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": "pour"
,"from %.2d€": "pour %.2d€" ,"from %.2d€": "pour %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Search results" ,"SearchResults": "Search results"
,"SelectFamily": "Select family" ,"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" ,"ArticleNotFound": "Item not found"
,"ArticleNotAvailable": "Item not available" ,"ArticleNotAvailable": "Item not available"
,"List view": "List view"
,"Grid view": "Grid view"
,"Switch view": "Switch view" ,"Switch view": "Switch view"
,"StartOrder": "Start order" ,"StartOrder": "Start order"
,"ShoppingBasket": "Shopping basket" ,"ShoppingBasket": "Shopping basket"
,"Agency": "газар" ,"%A, %e of %B": "%A, %e of %B"
,"Warehouse": "Агуулахын" ,"Agency": "Agency"
,"Warehouse": "Warehouse"
,"Filter by": "Filter by"
,"Order by": "Order by"
,"Search": "Search" ,"Search": "Search"
,"Change": "Change" ,"Change": "Change"
,"Order": "Order"
,"Available": "Available" ,"Available": "Available"
,"Size": "Size" ,"Size": "Size"
,"Realm": "Realm" ,"Realm": "Realm"
@ -27,17 +33,15 @@
,"Category": "Category" ,"Category": "Category"
,"Remove filters": "Remove filters" ,"Remove filters": "Remove filters"
,"Amount": "Amount"
,"Aval": "Aval"
,"Name": "Name"
,"S1": "Siz"
,"S2": "S2"
,"Stems": "Stems"
,"Cat": "Cat"
,"Pack": "Pack"
,"Origin": "Origin"
,"Price": "Price" ,"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": "from"
,"from %.2d€": "from %.2d€" ,"from %.2d€": "from %.2d€"

View File

@ -3,20 +3,26 @@
,"SearchResults": "Resultados de busca" ,"SearchResults": "Resultados de busca"
,"SelectFamily": "Seleccione uma família" ,"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" ,"ArticleNotFound": "Ítem não encontrado"
,"ArticleNotAvailable": "Ítem não disponível" ,"ArticleNotAvailable": "Ítem não disponível"
,"List view": "Ver como lista"
,"Grid view": "Vista em modo de grade"
,"Switch view": "Modificar vista" ,"Switch view": "Modificar vista"
,"StartOrder": "Iniciar pedido" ,"StartOrder": "Iniciar pedido"
,"ShoppingBasket": "Cesta da compra" ,"ShoppingBasket": "Cesta da compra"
,"%A, %e of %B": "%A, %e of %B"
,"Agency": "Agência" ,"Agency": "Agência"
,"Warehouse": "Armazém" ,"Warehouse": "Armazém"
,"Filter by": "Filtrar por"
,"Order by": "Ordenar por"
,"Search": "Buscar" ,"Search": "Buscar"
,"Change": "Modificar" ,"Change": "Modificar"
,"Order": "Organizar"
,"Available": "Disponível" ,"Available": "Disponível"
,"Size": "Medida" ,"Size": "Medida"
,"Realm": "Reino" ,"Realm": "Reino"
@ -27,17 +33,15 @@
,"Category": "Categoria" ,"Category": "Categoria"
,"Remove filters": "Eliminar filtros" ,"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" ,"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": "desde"
,"from %.2d€": "desde %.2d€" ,"from %.2d€": "desde %.2d€"