Release beta, errores solucionados
|
@ -117,8 +117,9 @@ class Web
|
|||
$useCookies = TRUE;
|
||||
$success = TRUE;
|
||||
|
||||
if (isset ($_GET['guest']))
|
||||
if (isset ($_POST['guest']))
|
||||
{
|
||||
self::sysInit ();
|
||||
$row = self::$sysConn->getRow (
|
||||
'SELECT guest_user, guest_pass FROM config');
|
||||
|
||||
|
|
|
@ -3,7 +3,12 @@
|
|||
<vn-param id="address"/>
|
||||
<vn-hash-param key="address" param="address"/>
|
||||
<db-form id="iter" on-status-changed="onStatusChange">
|
||||
<db-model property="model" id="model" updatable="true" mode="ON_DEMAND" on-operations-done="onOperationsDone">
|
||||
<db-model
|
||||
id="model"
|
||||
property="model"
|
||||
updatable="true"
|
||||
mode="ON_DEMAND"
|
||||
on-operations-done="onOperationsDone">
|
||||
<custom>
|
||||
SELECT a.id, a.name, a.consignee, a.city, a.zip_code, a.province_id, c.Id country_id
|
||||
FROM address_view a
|
||||
|
@ -57,6 +62,7 @@
|
|||
<label><t>Country</t></label>
|
||||
<htk-combo>
|
||||
<db-param
|
||||
id="country"
|
||||
property="param"
|
||||
form="iter"
|
||||
column="country_id"
|
||||
|
|
|
@ -3,10 +3,49 @@
|
|||
{
|
||||
padding: 1em;
|
||||
}
|
||||
.about .cols
|
||||
{
|
||||
max-width: 85em;
|
||||
margin: 0 auto;
|
||||
}
|
||||
@media screen and (min-width: 1000px) /* and (max-width: 1399px) */
|
||||
{
|
||||
.about .cols
|
||||
{
|
||||
column-count: 2;
|
||||
-moz-column-count: 2;
|
||||
-webkit-column-count: 2;
|
||||
}
|
||||
}/*
|
||||
@media screen and (min-width: 1400px)
|
||||
{
|
||||
.about .cols
|
||||
{
|
||||
column-count: 3;
|
||||
-moz-column-count: 3;
|
||||
-webkit-column-count: 3;
|
||||
}
|
||||
}
|
||||
@media screen and (min-width: 2000px)
|
||||
{
|
||||
.about .cols
|
||||
{
|
||||
column-count: 4;
|
||||
-moz-column-count: 4;
|
||||
-webkit-column-count: 4;
|
||||
}
|
||||
}*/
|
||||
.about .box
|
||||
{
|
||||
max-width: 50em;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 1em;
|
||||
padding: 2em;
|
||||
}
|
||||
.about h1
|
||||
{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
font-size: 1.6em;
|
||||
}
|
||||
.about h2
|
||||
{
|
||||
|
@ -20,28 +59,22 @@
|
|||
text-align: center;
|
||||
font-size: 1.2em;
|
||||
font-weight: normal;
|
||||
margin: 1em;
|
||||
color: #4A1;
|
||||
padding: 1em;
|
||||
color: #00796B;
|
||||
}
|
||||
.about p
|
||||
{
|
||||
width: 90%;
|
||||
display: block;
|
||||
margin: 1em auto;
|
||||
margin: 1em 0;
|
||||
}
|
||||
.summary
|
||||
.about p.summary
|
||||
{
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.summary p
|
||||
{
|
||||
max-width: 30em;
|
||||
max-width: 26em;
|
||||
text-align: center;
|
||||
background-color: #FF8;
|
||||
padding: 1em;
|
||||
border-radius: 0.1em;
|
||||
box-shadow: 0 0.2em 0.2em #AAA;
|
||||
margin: 2em auto;
|
||||
margin: 1.5em auto;
|
||||
}
|
||||
|
||||
/* Images */
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
<h1><t>About</t></h1>
|
||||
</div>
|
||||
<div id="form" class="about">
|
||||
<div class="box">
|
||||
<div>
|
||||
<div class="header">
|
||||
<h1><t>QualityAndVariety</t></h1>
|
||||
</div>
|
||||
<div class="cols">
|
||||
<div class="box">
|
||||
<h1>
|
||||
<t>QualityAndVariety</t>
|
||||
</h1>
|
||||
<p><t>MaximumFreshness</t></p>
|
||||
<h3><t>SquareMeters</t></h3>
|
||||
<img src="forms/cms/about/image/store.png" alt="store"/>
|
||||
|
@ -20,26 +20,26 @@
|
|||
</p>
|
||||
<img src="forms/cms/about/image/palletizing.png" alt="palletizing"/>
|
||||
</div>
|
||||
<div>
|
||||
<div class="header">
|
||||
<h1><t>WhatMakeUsDifferent</t></h1>
|
||||
</div>
|
||||
<div class="box">
|
||||
<h1>
|
||||
<t>WhatMakeUsDifferent</t>
|
||||
</h1>
|
||||
<p><t>DesignVariety</t></p>
|
||||
<img src="forms/cms/about/image/differentiates_us.png" alt="differentiates_us"/>
|
||||
<p><t>AdaptToYourNeeds</t></p>
|
||||
<h3><t>TheBestQuality</t></h3>
|
||||
</div>
|
||||
<div>
|
||||
<div class="header">
|
||||
<h1><t>AtYourService</t></h1>
|
||||
</div>
|
||||
<div class="box">
|
||||
<h1>
|
||||
<t>AtYourService</t>
|
||||
</h1>
|
||||
<h2><t>BuyersAndTraders</t></h2>
|
||||
<img src="forms/cms/about/image/commercial.png" alt="commercial"/>
|
||||
</div>
|
||||
<div>
|
||||
<div class="header">
|
||||
<h1><t>Training</t></h1>
|
||||
</div>
|
||||
<div class="box">
|
||||
<h1>
|
||||
<t>Verdnatura training</t>
|
||||
</h1>
|
||||
<p><t>GoodTraining</t></p>
|
||||
<img src="forms/cms/about/image/training.png" alt="training"/>
|
||||
<p><t>SpecialTrainingPrices</t></p>
|
||||
|
@ -47,10 +47,10 @@
|
|||
<h2><t>YoutubeChannel</t></h2>
|
||||
<img src="forms/cms/about/image/youtube.png" alt="youtube"/>
|
||||
</div>
|
||||
<div>
|
||||
<div class="header">
|
||||
<h1><t>HowWeWork</t></h1>
|
||||
</div>
|
||||
<div class="box">
|
||||
<h1>
|
||||
<t>HowWeWork</t>
|
||||
</h1>
|
||||
<p><t>AalsmeerAuction</t></p>
|
||||
<img src="forms/cms/about/image/auction.png" alt="auction"/>
|
||||
<p><t>BeforeAuction</t></p>
|
||||
|
@ -88,9 +88,7 @@
|
|||
<p><t>AfterEmbedAgency</t></p>
|
||||
<img src="forms/cms/about/image/agencies.png" alt="agencies"/>
|
||||
<p><t>FreshnessGuaranteed</t></p>
|
||||
</div>
|
||||
<div class="summary">
|
||||
<p>
|
||||
<p class="summary">
|
||||
<t>AboutSummary</t>
|
||||
<img src="image/logo.svg" alt="Verdnatura"/>
|
||||
</p>
|
||||
|
|
|
@ -26,7 +26,7 @@ header ('Content-Type: application/json');
|
|||
if ($paramsOk && isset ($_SESSION['captcha'])
|
||||
&& $_POST['captcha'] == $_SESSION['captcha'])
|
||||
{
|
||||
mail ('nuria@verdnatura.es', 'Verdnatura', print_r ($_POST, TRUE),
|
||||
mail ('comunicacion@verdnatura.es', 'Verdnatura', print_r ($_POST, TRUE),
|
||||
'From: Verdnatura <www-data@verdnatura.es>');
|
||||
|
||||
echo json_encode (TRUE);
|
||||
|
|
|
@ -2,5 +2,10 @@
|
|||
Vn.Home = new Class
|
||||
({
|
||||
Extends: Vn.Form
|
||||
|
||||
,onStartOrderClick: function ()
|
||||
{
|
||||
this.hash.set ({'form': 'ecomerce/catalog'});
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -2,8 +2,15 @@
|
|||
<div id="title">
|
||||
<h1><t>Home</t></h1>
|
||||
</div>
|
||||
<div id="actions" class="catalog-actions">
|
||||
<htk-button
|
||||
image="image/dark/new-order.svg"
|
||||
tip="_Start order"
|
||||
on-click="onStartOrderClick"
|
||||
showText="true"/>
|
||||
</div>
|
||||
<div id="form" class="home">
|
||||
<div class="column mansonry" id="news-column">
|
||||
<div class="column mansonry" id="news-column">
|
||||
<htk-repeater form-id="new">
|
||||
<db-model property="model">
|
||||
<custom>
|
||||
|
@ -24,11 +31,11 @@
|
|||
<htk-html form="new" column="text"/>
|
||||
</div>
|
||||
</div>
|
||||
<htk-image directory="news/full" form="new" column="image"/>
|
||||
<htk-image directory="news/full" form="new" column="image" editable="false"/>
|
||||
</div>
|
||||
</div>
|
||||
</custom>
|
||||
</htk-repeater>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</vn>
|
||||
|
|
|
@ -5,23 +5,17 @@ Vn.Basket = new Class
|
|||
|
||||
,open: function ()
|
||||
{
|
||||
if (this.basketChecked)
|
||||
this.parent ();
|
||||
}
|
||||
this.close ();
|
||||
this.isOpen = true;
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
Vn.BasketChecker.check (this.conn,
|
||||
this.onBasketCheck.bind (this));
|
||||
}
|
||||
|
||||
,onBasketCheck: function (isOk)
|
||||
{
|
||||
if (!isOk)
|
||||
return;
|
||||
|
||||
this.basketChecked = true;
|
||||
this.open ();
|
||||
if (isOk)
|
||||
this.loadUi ();
|
||||
}
|
||||
|
||||
,onConfigureClick: function ()
|
||||
|
|
|
@ -7,13 +7,10 @@ Vn.Catalog = new Class
|
|||
|
||||
,open: function ()
|
||||
{
|
||||
if (this.basketChecked)
|
||||
this.parent ();
|
||||
}
|
||||
this.close ();
|
||||
this.isOpen = true;
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
if (!Vn.Url.getQuery ('guest'))
|
||||
if (!Vn.Cookie.check ('hedera_guest'))
|
||||
{
|
||||
Vn.BasketChecker.check (this.conn,
|
||||
this.onBasketCheck.bind (this));
|
||||
|
@ -21,46 +18,41 @@ Vn.Catalog = new Class
|
|||
else
|
||||
{
|
||||
var query = 'CALL basket_configure_for_guest ()';
|
||||
this.conn.execQuery (query, this.onBasketForGuest.bind (this));
|
||||
this.conn.execQuery (query, this.loadUi.bind (this));
|
||||
}
|
||||
}
|
||||
|
||||
,close: function ()
|
||||
{
|
||||
if (this.node)
|
||||
{
|
||||
this.gui.$('top-bar').style.backgroundColor = '';
|
||||
Vn.Node.remove (this.$('right-panel'));
|
||||
}
|
||||
|
||||
this.parent ();
|
||||
}
|
||||
|
||||
,onBasketForGuest: function ()
|
||||
{
|
||||
this.onBasketCheck (true);
|
||||
}
|
||||
|
||||
,onBasketCheck: function (isOk)
|
||||
{
|
||||
if (!isOk)
|
||||
return;
|
||||
|
||||
this.basketChecked = true;
|
||||
this.open ();
|
||||
if (isOk)
|
||||
this.loadUi ();
|
||||
}
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
document.body.appendChild (this.$('right-panel'));
|
||||
|
||||
this.popup = new Htk.Popup ();
|
||||
this.popup.setChildNode (this.$('lots-popup'));
|
||||
|
||||
this.$('items-model').setInfo ('a', 'Articles', 'vn2008', ['Id_Article']);
|
||||
this.setView ('GRID');
|
||||
|
||||
if (Vn.Cookie.check ('hedera_view'))
|
||||
this.setView (Vn.Cookie.getInt ('hedera_view'));
|
||||
else
|
||||
this.setView (Vn.Catalog.View.GRID);
|
||||
}
|
||||
|
||||
,deactivate: function ()
|
||||
{
|
||||
this.gui.$('top-bar').style.backgroundColor = '';
|
||||
Vn.Node.remove (this.$('right-panel'));
|
||||
}
|
||||
|
||||
,onSwitchViewClick: function ()
|
||||
{
|
||||
this.setView (this.view == 'LIST' ? 'GRID' : 'LIST');
|
||||
this.setView (this.view === Vn.Catalog.View.LIST ?
|
||||
Vn.Catalog.View.GRID : Vn.Catalog.View.LIST);
|
||||
}
|
||||
|
||||
,setView: function (view)
|
||||
|
@ -71,21 +63,30 @@ Vn.Catalog = new Class
|
|||
this.viewHolder.model = null;
|
||||
}
|
||||
|
||||
if (view == 'GRID')
|
||||
if (view === Vn.Catalog.View.GRID)
|
||||
{
|
||||
this.view = 'GRID';
|
||||
this.view = Vn.Catalog.View.GRID;
|
||||
this.viewNode = this.$('grid-view').getNode ();
|
||||
this.viewHolder = this.$('grid-view');
|
||||
}
|
||||
else
|
||||
{
|
||||
this.view = 'LIST';
|
||||
this.view = Vn.Catalog.View.LIST;
|
||||
this.viewNode = this.$('list-view');
|
||||
this.viewHolder = this.$('items-grid');
|
||||
}
|
||||
|
||||
this.$('main').appendChild (this.viewNode);
|
||||
this.viewHolder.model = this.$('items-model');
|
||||
Vn.Cookie.set ('hedera_view', this.view)
|
||||
}
|
||||
|
||||
,onBasketReady: function (form)
|
||||
{
|
||||
if (form.get ('method') != 'PICKUP')
|
||||
Vn.Node.setText (this.$('method'), _('Agency'));
|
||||
else
|
||||
Vn.Node.setText (this.$('method'), _('Warehouse'));
|
||||
}
|
||||
|
||||
,typeRenderer: function (builder, form)
|
||||
|
@ -110,22 +111,25 @@ Vn.Catalog = new Class
|
|||
|
||||
,onTypeChange: function ()
|
||||
{
|
||||
if (this._menuShown && this.$('type').value)
|
||||
if (this.$('type').value)
|
||||
this.hideMenu ();
|
||||
|
||||
this.refreshTitle ();
|
||||
}
|
||||
|
||||
,refreshTitleColor: function ()
|
||||
{
|
||||
var realms = this.$('realms-model');
|
||||
return;
|
||||
|
||||
if (!realms.ready)
|
||||
return;
|
||||
|
||||
this.refreshTitle ();
|
||||
|
||||
var color = null;
|
||||
var realm = this.$('realm').value;
|
||||
|
||||
if (this.$('type').value)
|
||||
if (realm)
|
||||
{
|
||||
var row = realms.search ('id', this.$('realm').value);
|
||||
var row = realms.search ('id', realm);
|
||||
|
||||
if (row != -1)
|
||||
color = '#'+ realms.get (row, 'color');
|
||||
|
@ -134,7 +138,7 @@ Vn.Catalog = new Class
|
|||
this.gui.$('top-bar').style.backgroundColor = color;
|
||||
}
|
||||
|
||||
,refreshTitle: function (title)
|
||||
,refreshTitle: function ()
|
||||
{
|
||||
var types = this.$('types-model');
|
||||
|
||||
|
@ -142,16 +146,15 @@ Vn.Catalog = new Class
|
|||
return;
|
||||
|
||||
var title = _('Catalog');
|
||||
var type = this.$('type').value;
|
||||
|
||||
if (this.$('type').value)
|
||||
if (type)
|
||||
{
|
||||
var row = types.search ('tipo_id', this.$('type').value);
|
||||
var row = types.search ('tipo_id', type);
|
||||
|
||||
if (row != -1)
|
||||
title = types.get (row, 'Tipo');
|
||||
title = types.get (row, 'name');
|
||||
}
|
||||
else if (this.$('search').value)
|
||||
title = _('SearchResults');
|
||||
|
||||
Vn.Node.setText (this.$('title-text'), title);
|
||||
}
|
||||
|
@ -184,12 +187,20 @@ Vn.Catalog = new Class
|
|||
|
||||
,onBasketClick: function ()
|
||||
{
|
||||
if (!Vn.Url.getQuery ('guest'))
|
||||
if (!Vn.Cookie.check ('hedera_guest'))
|
||||
this.hash.set ({'form': 'ecomerce/basket'});
|
||||
else
|
||||
Htk.Toast.showError (_('YouMustBeLoggedIn'));
|
||||
}
|
||||
|
||||
,onConfigureClick: function ()
|
||||
{
|
||||
if (!Vn.Cookie.check ('hedera_guest'))
|
||||
this.hash.set ({'form': 'ecomerce/checkout'});
|
||||
else
|
||||
Htk.Toast.showError (_('YouMustBeLoggedIn'));
|
||||
}
|
||||
|
||||
,nameRenderer: function (renderer, form)
|
||||
{
|
||||
renderer.subtitle = form.get ('producer');
|
||||
|
@ -256,7 +267,7 @@ Vn.Catalog = new Class
|
|||
|
||||
,showAmountPopup: function (button, row)
|
||||
{
|
||||
if (Vn.Url.getQuery ('guest'))
|
||||
if (Vn.Cookie.check ('hedera_guest'))
|
||||
{
|
||||
Htk.Toast.showError (_('YouMustBeLoggedIn'));
|
||||
return;
|
||||
|
@ -562,6 +573,14 @@ Vn.Filter = new Class
|
|||
this._label.nodeValue = _('Loading...');
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Vn.Catalog.extend
|
||||
({
|
||||
View: {
|
||||
LIST: 0,
|
||||
GRID: 1
|
||||
}
|
||||
});
|
||||
|
||||
Vn.ColumnItem = new Class
|
||||
|
@ -589,5 +608,5 @@ Vn.ColumnItem = new Class
|
|||
|
||||
return td;
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
|
|
|
@ -36,16 +36,11 @@
|
|||
.catalog-actions > .htk-search-entry
|
||||
{
|
||||
margin-top: .8em;
|
||||
margin-right: .4em;
|
||||
}
|
||||
|
||||
/* Right panel */
|
||||
|
||||
.right-panel > .body
|
||||
{
|
||||
text-align: center;
|
||||
padding: 1em;
|
||||
overflow: auto;
|
||||
}
|
||||
.right-panel
|
||||
{
|
||||
position: absolute;
|
||||
|
@ -54,31 +49,68 @@
|
|||
right: 0;
|
||||
width: 17em;
|
||||
background-color: white;
|
||||
box-shadow: 0 0.2em 0.2em #AAA;
|
||||
box-shadow: 0 0.2em 0.2em rgba(1, 1, 1, 0.4);
|
||||
overflow: auto;
|
||||
}
|
||||
.right-panel > .body
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
.right-panel .section
|
||||
{
|
||||
padding: 1.2em 2em;
|
||||
}
|
||||
.right-panel .section > button
|
||||
{
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
margin-top: .4em;
|
||||
}
|
||||
.right-panel .basket-info
|
||||
{
|
||||
background-color: #00acc1;
|
||||
color: white;
|
||||
box-shadow: 0 0.1em 0.1em rgba(1, 1, 1, 0.3);
|
||||
}
|
||||
.right-panel .basket-info > button
|
||||
{
|
||||
color: #e0f2f1;
|
||||
}
|
||||
.right-panel .basket-info > p
|
||||
{
|
||||
margin: 0;
|
||||
padding: .4em 0;
|
||||
font-size: 1.1em;
|
||||
text-align: left;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
.right-panel .filters
|
||||
{
|
||||
}
|
||||
.right-panel .section > select,
|
||||
.right-panel .section > .vn-filter
|
||||
{
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.right-panel select
|
||||
{
|
||||
margin: .8em auto;
|
||||
width: 12em;
|
||||
/* color: #333;
|
||||
background-color: #EEE;
|
||||
border: 0;*/
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
}
|
||||
option.placeholder
|
||||
{
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.vn-filter ul
|
||||
.vn-filter > ul
|
||||
{
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
text-align: left;
|
||||
color: #666;
|
||||
padding-left: 2em;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
.vn-filter li
|
||||
{
|
||||
margin: 0;
|
||||
margin-top: .4em;
|
||||
line-height: 2em;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
|
@ -92,71 +124,6 @@ option.placeholder
|
|||
padding: .2em;
|
||||
margin-right: .2em;
|
||||
}
|
||||
.right-panel .remove-filters
|
||||
{
|
||||
margin-top: 1.2em;
|
||||
}
|
||||
|
||||
button.basket
|
||||
{
|
||||
width: 100%;
|
||||
height: 3em;
|
||||
font-size: 1.1em;
|
||||
text-align: center;
|
||||
background-color: #00BCD4;
|
||||
border-radius: 0;
|
||||
}
|
||||
button.basket:hover
|
||||
{
|
||||
background-color: #0AB;
|
||||
}
|
||||
|
||||
/* Realms */
|
||||
|
||||
.realms-box
|
||||
{
|
||||
box-shadow: 0 0 0.4em #AAA;
|
||||
background-color: rgba(1, 1, 1, .1);
|
||||
}
|
||||
.realms-box a
|
||||
{
|
||||
display: block;
|
||||
float: left;
|
||||
line-height: 0;
|
||||
width: 33.3%;
|
||||
}
|
||||
.realms-box a > img
|
||||
{
|
||||
width: 100%;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.realms-box img:hover
|
||||
{
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Types */
|
||||
|
||||
.types-box
|
||||
{
|
||||
position: absolute;
|
||||
top: 11.5em;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
.types-box a
|
||||
{
|
||||
padding: .5em 1.5em;
|
||||
display: block;
|
||||
}
|
||||
.types-box a:hover
|
||||
{
|
||||
background-color: rgba(1, 1, 1, .1);
|
||||
}
|
||||
|
||||
/* Item description */
|
||||
|
||||
|
@ -270,10 +237,10 @@ td.third-category
|
|||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
.item-box img
|
||||
.item-box > .image > img
|
||||
{
|
||||
max-width: 9em;
|
||||
max-height: 9em;
|
||||
max-width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
border-radius: .3em;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<vn>
|
||||
<vn-group>
|
||||
<vn-param id="search"/>
|
||||
<vn-param id="realm" on-changed="onTypeChange"/>
|
||||
<vn-param id="realm" on-changed="refreshTitleColor"/>
|
||||
<vn-param id="type" on-changed="onTypeChange"/>
|
||||
<vn-param id="color"/>
|
||||
<vn-param id="origin"/>
|
||||
|
@ -88,6 +88,16 @@
|
|||
</custom>
|
||||
<sql-batch property="batch" id="lots-batch"/>
|
||||
</db-model>
|
||||
<db-form id="basket" on-ready="onBasketReady">
|
||||
<db-model property="model">
|
||||
<custom>
|
||||
SELECT o.id, o.date_send, ag.description agency, v.code method
|
||||
FROM basket o
|
||||
JOIN vn2008.Agencias ag ON ag.Id_Agencia = o.agency_id
|
||||
JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id
|
||||
</custom>
|
||||
</db-model>
|
||||
</db-form>
|
||||
</vn-group>
|
||||
<div id="title">
|
||||
<h1 id="title-text"><t>Catalog</t></h1>
|
||||
|
@ -175,7 +185,8 @@
|
|||
form="item"
|
||||
column="Foto"
|
||||
show-full="true"
|
||||
full-dir="900x900"/>
|
||||
full-dir="900x900"
|
||||
editable="true"/>
|
||||
</div>
|
||||
<htk-button
|
||||
form="item"
|
||||
|
@ -219,10 +230,22 @@
|
|||
</custom>
|
||||
</htk-repeater>
|
||||
<div id="right-panel" class="right-panel" on-click="onRightPanelClick">
|
||||
<div class="body">
|
||||
<div class="section basket-info">
|
||||
<p>
|
||||
<htk-text form="basket" column="date_send" format="_%A, %e of %B"/>
|
||||
</p>
|
||||
<p>
|
||||
<span id="method"/>
|
||||
<htk-text form="basket" column="agency"/>
|
||||
</p>
|
||||
<button class="thin" on-click="onConfigureClick">
|
||||
<t>Configure</t>
|
||||
</button>
|
||||
</div>
|
||||
<div class="section filters">
|
||||
<select on-change="onOrderChange">
|
||||
<option value="" disabled="true" selected="true">
|
||||
<t>Order by</t>
|
||||
<t>Order</t>
|
||||
</option>
|
||||
<option value="Article">
|
||||
<t>Name</t>
|
||||
|
@ -255,7 +278,7 @@
|
|||
<db-model
|
||||
id="realms-model"
|
||||
property="model"
|
||||
on-status-changed="onTypeChange">
|
||||
on-status-changed="refreshTitleColor">
|
||||
<custom>
|
||||
SELECT r.id, l.str name, r.color
|
||||
FROM vn2008.reinos r
|
||||
|
@ -387,45 +410,10 @@
|
|||
<pointer object="op-producer"/>
|
||||
</sql-filter>
|
||||
</vn-filter>
|
||||
<button class="remove-filters thin" on-click="onRemoveFiltersClick">
|
||||
<button class="thin" on-click="onRemoveFiltersClick">
|
||||
<t>Remove filters</t>
|
||||
</button>
|
||||
</div>
|
||||
<!--
|
||||
<htk-repeater
|
||||
model="realms-model"
|
||||
form-id="realm-form"
|
||||
renderer="realmRenderer"
|
||||
class="realms-box">
|
||||
<db-model id="realms-model" on-status-changed="onTypeChange">
|
||||
SELECT id, reino, color FROM vn2008.reinos
|
||||
WHERE display != FALSE ORDER BY reino
|
||||
</db-model>
|
||||
<template>
|
||||
<a id="link">
|
||||
<img id="image"/>
|
||||
</a>
|
||||
</template>
|
||||
</htk-repeater>
|
||||
<htk-repeater
|
||||
model="types-model"
|
||||
form-id="type-form"
|
||||
renderer="typeRenderer"
|
||||
empty-message="_SelectFamily"
|
||||
class="types-box">
|
||||
<db-model id="types-model" on-status-changed="refreshTitle">
|
||||
CALL type_list (#realm)
|
||||
<sql-batch property="batch">
|
||||
<item name="realm" param="realm"/>
|
||||
</sql-batch>
|
||||
</db-model>
|
||||
<template>
|
||||
<a id="link">
|
||||
<htk-text form="type-form" column="Tipo"/>
|
||||
</a>
|
||||
</template>
|
||||
</htk-repeater>
|
||||
-->
|
||||
</div>
|
||||
<div id="desc-popup" class="desc-popup"/>
|
||||
<div id="lots-popup" class="lots-popup">
|
||||
|
|
|
@ -45,8 +45,17 @@ Vn.Checkout = new Class
|
|||
this.autoStepLocked = false;
|
||||
}
|
||||
|
||||
,disableButtons: function (disable)
|
||||
{
|
||||
this.$('confirm-agency').disabled = disable;
|
||||
this.$('confirm-delivery').disabled = disable;
|
||||
this.$('confirm-pickup').disabled = disable;
|
||||
}
|
||||
|
||||
,onConfirmClick: function ()
|
||||
{
|
||||
this.disableButtons (true);
|
||||
|
||||
var query = 'CALL basket_configure (#date, #method, #agency, #address)';
|
||||
|
||||
var batch = new Sql.Batch ();
|
||||
|
@ -61,6 +70,8 @@ Vn.Checkout = new Class
|
|||
|
||||
,onBasketConfigured: function (resultSet)
|
||||
{
|
||||
this.disableButtons (false);
|
||||
|
||||
if (!resultSet.fetchResult ())
|
||||
return;
|
||||
|
||||
|
|
|
@ -176,7 +176,7 @@
|
|||
<t>Agency</t>
|
||||
<htk-text form="agency-combo" column="description"/>
|
||||
</p>
|
||||
<button class="thin" on-click="onConfirmClick">
|
||||
<button id="confirm-agency" class="thin" on-click="onConfirmClick">
|
||||
<t>Confirm</t>
|
||||
</button>
|
||||
<div class="clear"/>
|
||||
|
@ -195,7 +195,7 @@
|
|||
<p>
|
||||
<t>ReceiveThroughtRoute</t>
|
||||
</p>
|
||||
<button class="thin" on-click="onConfirmClick">
|
||||
<button id="confirm-delivery" class="thin" on-click="onConfirmClick">
|
||||
<t>Confirm</t>
|
||||
</button>
|
||||
<div class="clear"/>
|
||||
|
@ -212,7 +212,7 @@
|
|||
<t>Warehouse</t>
|
||||
<htk-text form="warehouse-combo" column="description"/>
|
||||
</p>
|
||||
<button class="thin" on-click="onConfirmClick">
|
||||
<button id="confirm-pickup" class="thin" on-click="onConfirmClick">
|
||||
<t>Confirm</t>
|
||||
</button>
|
||||
<div class="clear"/>
|
||||
|
|
|
@ -3,6 +3,21 @@ Vn.Confirm = new Class
|
|||
({
|
||||
Extends: Vn.Form
|
||||
|
||||
,open: function ()
|
||||
{
|
||||
this.close ();
|
||||
this.isOpen = true;
|
||||
|
||||
Vn.BasketChecker.check (this.conn,
|
||||
this.onBasketCheck.bind (this));
|
||||
}
|
||||
|
||||
,onBasketCheck: function (isOk)
|
||||
{
|
||||
if (isOk)
|
||||
this.loadUi ();
|
||||
}
|
||||
|
||||
,onOrderReady: function (form)
|
||||
{
|
||||
if (form.row < 0)
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<db-model property="model" id="ticket-data">
|
||||
<custom>
|
||||
SELECT t.id, date, a.Agencia, note, p.name province,
|
||||
zip_code, city, c.name, consignee, invoice
|
||||
zip_code, city, c.name, consignee, invoice, delivery
|
||||
FROM ticket_view t
|
||||
JOIN address_view c ON t.address_id = c.id
|
||||
JOIN vn2008.Agencias a ON t.agency_id = a.Id_Agencia
|
||||
|
@ -38,6 +38,9 @@
|
|||
<p class="important ticket-id">
|
||||
<htk-text column="id" form="ticket"/>
|
||||
</p>
|
||||
<p>
|
||||
<htk-text form="ticket" column="delivery" format="%A, %e of %B %Y"/>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
|
||||
Vn.include ('js/misc/tinymce/tinymce.min');
|
||||
Vn.define (function () {
|
||||
|
||||
Vn.New = new Class
|
||||
({
|
||||
Extends: Vn.Form
|
||||
|
@ -68,3 +71,5 @@ Vn.New = new Class
|
|||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<vn>
|
||||
<vn-group>
|
||||
<vn-hash-param key="new">
|
||||
<vn-param id="new-id"/>
|
||||
</vn-hash-param>
|
||||
<vn-hash-param key="new" param="new-id"/>
|
||||
<db-form id="iter" on-status-changed="onStatusChange">
|
||||
<db-model
|
||||
id="model"
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
{
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-height: 100%;
|
||||
height: 100%;
|
||||
max-width: 100%;
|
||||
border-radius: .3em;
|
||||
}
|
||||
|
|
|
@ -11,22 +11,6 @@
|
|||
</div>
|
||||
<div id="form" class="news">
|
||||
<div class="box">
|
||||
<htk-grid show-header="false">
|
||||
<htk-column-button
|
||||
column="id"
|
||||
tip="_EditNew"
|
||||
image="image/edit.svg"
|
||||
on-clicked="onEditClick"/>
|
||||
<htk-column-image
|
||||
column="image"
|
||||
directory="news"
|
||||
subdir="50x50"
|
||||
show-full="true"
|
||||
editable="true"/>
|
||||
<htk-column-text title="_Title" column="title"/>
|
||||
<htk-column-text title="_Author" column="Cliente"/>
|
||||
<htk-column-spin title="_Priority" column="priority"/>
|
||||
</htk-grid>
|
||||
<htk-repeater form-id="iter">
|
||||
<db-model property="model" id="news-model" updatable="true">
|
||||
<custom>
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<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"
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
width="16"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="add-photo.svg"
|
||||
style="fill:#000000">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<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>
|
||||
<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="namedview12"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.8333333"
|
||||
inkscape:cx="12.20339"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<path
|
||||
d="M 24,24 0,24 0,0 24,0 24,24 Z"
|
||||
id="a"
|
||||
inkscape:connector-curvature="0" />
|
||||
</defs>
|
||||
<clipPath
|
||||
id="b">
|
||||
<use
|
||||
overflow="visible"
|
||||
xlink:href="#a"
|
||||
id="use8"
|
||||
style="overflow:visible"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</clipPath>
|
||||
<path
|
||||
clip-path="url(#b)"
|
||||
d="M 3,4 3,1 5,1 5,4 8,4 8,6 5,6 5,9 3,9 3,6 0,6 0,4 3,4 Z M 6,10 6,7 9,7 9,4 16,4 17.83,6 21,6 c 1.1,0 2,0.9 2,2 l 0,12 c 0,1.1 -0.9,2 -2,2 L 5,22 C 3.9,22 3,21.1 3,20 l 0,-10 3,0 z m 7,9 c 2.76,0 5,-2.24 5,-5 0,-2.76 -2.24,-5 -5,-5 -2.76,0 -5,2.24 -5,5 0,2.76 2.24,5 5,5 z M 9.8,14 c 0,1.77 1.43,3.2 3.2,3.2 1.77,0 3.2,-1.43 3.2,-3.2 0,-1.77 -1.43,-3.2 -3.2,-3.2 -1.77,0 -3.2,1.43 -3.2,3.2 z"
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(0.60869565,0,0,0.60869565,1,1)"
|
||||
style="fill:#666666;fill-opacity:1" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<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"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="16"
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
enable-background="new 0 0 512 512"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="new-order.svg"><metadata
|
||||
id="metadata11"><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="defs9" /><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="namedview7"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="51.6875"
|
||||
inkscape:cx="7.544033"
|
||||
inkscape:cy="7.9613059"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><g
|
||||
id="g2988"
|
||||
transform="matrix(0.03325942,0,0,0.03325942,-0.51441152,-0.68070862)"
|
||||
style="fill:#ffffff;fill-opacity:1"><path
|
||||
id="path3"
|
||||
d="m 461.5,222 h -411 c -11.046,0 -20,8.954 -20,20 l 40,207 c 0,11.046 8.954,20 20,20 h 331 c 11.046,0 20,-8.954 20,-20 l 40,-207 c 0,-11.046 -8.954,-20 -20,-20 z M 138,403.5 c 0,5.799 -4.701,10.5 -10.5,10.5 h 0 c -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 h 0.001 c 5.799,0 10.5,4.701 10.5,10.5 v 117 z m 66,0 c 0,5.799 -4.701,10.5 -10.5,10.5 h 0 c -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 h 0.001 c 5.798,0 10.5,4.701 10.5,10.5 v 117 z m 62,0 c 0,5.799 -4.701,10.5 -10.5,10.5 h 0 c -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 h 0.001 c 5.798,0 10.5,4.701 10.5,10.5 v 117 z m 65,0 c 0,5.799 -4.701,10.5 -10.5,10.5 -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 5.799,0 10.5,4.701 10.5,10.5 v 117 z m 65,0 c 0,5.799 -4.701,10.5 -10.5,10.5 -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 5.799,0 10.5,4.701 10.5,10.5 v 117 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1" /><path
|
||||
id="path5"
|
||||
d="M 319.9,71.008 C 318.899,60.897 310.373,53 300,53 l -87,0 c -10.387,0 -18.92,7.919 -19.901,18.049 -19.155,-0.169 -49.697,-0.793 -60.374,3.647 -19.07,7.12 -34.01,24.74 -37.04,44.99 -4.64,29.089 -9.399,58.169 -13.91,87.291 6.721,0.029 13.44,0.159 20.16,-0.021 4.53,-27.64 8.83,-55.31 13.34,-82.95 1.83,-16.4 15.96,-30.24 32.12,-32.61 C 154.332,90.778 178.309,91 193.67,91.053 195.911,99.648 203.703,106 213,106 l 87,0 c 9.31,0 17.11,-6.37 19.34,-14.982 1.40554,-6.929611 1.55505,-12.101213 0.56,-20.01 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
sodipodi:nodetypes="cssccccccccsscc" /></g><path
|
||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;stroke:#ff0b0b;stroke-width:0;stroke-linejoin:round;stroke-miterlimit:26.89999962;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
d="m 12.193371,0.78469625 0,1.99999315 -1.999993,0 0,0.9999966 1.999993,0 0,1.9999934 0.999997,0 0,-1.9999934 1.999994,0 0,-0.9999966 -1.999994,0 0,-1.99999315 -0.999997,0 z"
|
||||
id="rect31992"
|
||||
inkscape:connector-curvature="0" /></svg>
|
After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 817 B |
Before Width: | Height: | Size: 5.3 KiB |
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<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"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="16"
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
enable-background="new 0 0 512 512"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="new-order.svg"><metadata
|
||||
id="metadata11"><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="defs9" /><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="namedview7"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="51.6875"
|
||||
inkscape:cx="8"
|
||||
inkscape:cy="8"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><g
|
||||
id="g2988"
|
||||
transform="matrix(0.03325942,0,0,0.03325942,-0.51441152,-0.68070862)"
|
||||
style="fill:#666666;fill-opacity:1"><path
|
||||
id="path3"
|
||||
d="m 461.5,222 h -411 c -11.046,0 -20,8.954 -20,20 l 40,207 c 0,11.046 8.954,20 20,20 h 331 c 11.046,0 20,-8.954 20,-20 l 40,-207 c 0,-11.046 -8.954,-20 -20,-20 z M 138,403.5 c 0,5.799 -4.701,10.5 -10.5,10.5 h 0 c -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 h 0.001 c 5.799,0 10.5,4.701 10.5,10.5 v 117 z m 66,0 c 0,5.799 -4.701,10.5 -10.5,10.5 h 0 c -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 h 0.001 c 5.798,0 10.5,4.701 10.5,10.5 v 117 z m 62,0 c 0,5.799 -4.701,10.5 -10.5,10.5 h 0 c -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 h 0.001 c 5.798,0 10.5,4.701 10.5,10.5 v 117 z m 65,0 c 0,5.799 -4.701,10.5 -10.5,10.5 -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 5.799,0 10.5,4.701 10.5,10.5 v 117 z m 65,0 c 0,5.799 -4.701,10.5 -10.5,10.5 -5.799,0 -10.5,-4.701 -10.5,-10.5 v -117 c 0,-5.799 4.701,-10.5 10.5,-10.5 5.799,0 10.5,4.701 10.5,10.5 v 117 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#666666;fill-opacity:1" /><path
|
||||
id="path5"
|
||||
d="M 319.9,71.008 C 318.899,60.897 310.373,53 300,53 l -87,0 c -10.387,0 -18.92,7.919 -19.901,18.049 -19.155,-0.169 -49.697,-0.793 -60.374,3.647 -19.07,7.12 -34.01,24.74 -37.04,44.99 -4.64,29.089 -9.399,58.169 -13.91,87.291 6.721,0.029 13.44,0.159 20.16,-0.021 4.53,-27.64 8.83,-55.31 13.34,-82.95 1.83,-16.4 15.96,-30.24 32.12,-32.61 C 154.332,90.778 178.309,91 193.67,91.053 195.911,99.648 203.703,106 213,106 l 87,0 c 9.31,0 17.11,-6.37 19.34,-14.982 1.40554,-6.929611 1.55505,-12.101213 0.56,-20.01 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#666666;fill-opacity:1"
|
||||
sodipodi:nodetypes="cssccccccccsscc" /></g><path
|
||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#666666;fill-opacity:1;stroke:#ff0b0b;stroke-width:0;stroke-linejoin:round;stroke-miterlimit:26.89999962;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
d="m 12.193371,0.78469625 0,1.99999315 -1.999993,0 0,0.9999966 1.999993,0 0,1.9999934 0.999997,0 0,-1.9999934 1.999994,0 0,-0.9999966 -1.999994,0 0,-1.99999315 -0.999997,0 z"
|
||||
id="rect31992"
|
||||
inkscape:connector-curvature="0" /></svg>
|
After Width: | Height: | Size: 4.0 KiB |
|
@ -12,7 +12,7 @@
|
|||
sodipodi:docname="unavailable.svg"
|
||||
height="16"
|
||||
id="svg7384"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
inkscape:version="0.91 r13725"
|
||||
version="1.1"
|
||||
width="16">
|
||||
<metadata
|
||||
|
@ -33,8 +33,8 @@
|
|||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
inkscape:current-layer="layer9"
|
||||
inkscape:cx="7.0453912"
|
||||
inkscape:cy="10.43808"
|
||||
inkscape:cx="8"
|
||||
inkscape:cy="8"
|
||||
gridtolerance="10"
|
||||
inkscape:guide-bbox="true"
|
||||
guidetolerance="10"
|
||||
|
@ -55,12 +55,12 @@
|
|||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-others="false"
|
||||
inkscape:snap-to-guides="true"
|
||||
inkscape:window-height="702"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:zoom="23.610133">
|
||||
inkscape:zoom="51.6875">
|
||||
<inkscape:grid
|
||||
empspacing="2"
|
||||
enabled="true"
|
||||
|
@ -100,9 +100,9 @@
|
|||
transform="translate(-321,-257)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 328.90645,257.09375 c -0.5255,-0.0286 -1.03823,0.28305 -1.4375,0.96875 l -6.25,11.59375 C 320.68548,270.61964 321.26717,272 322.3127,272 l 13.15625,0 c 0.98172,0 1.90311,-1.15939 1.21875,-2.34375 L 330.3752,258.125 c -0.39872,-0.64617 -0.94325,-1.00262 -1.46875,-1.03125 z m 0.0625,3.9375 c 0.54448,-0.0172 1.04849,0.48677 1.03125,1.03125 l 0,3.9375 c 0.007,0.52831 -0.47163,1 -1,1 -0.52836,0 -1.00747,-0.47169 -1,-1 l 0,-3.9375 c -0.008,-0.4666 0.3541,-0.91253 0.8125,-1 0.0511,-0.0145 0.10345,-0.0249 0.15625,-0.0312 z M 329.0002,268 c 0.55228,0 1,0.44772 1,1 0,0.55228 -0.44772,1 -1,1 -0.55228,0 -1,-0.44772 -1,-1 0,-0.55228 0.44772,-1 1,-1 z"
|
||||
d="m 328.94324,258.44109 c -0.4625,-0.0252 -0.91377,0.24912 -1.26518,0.85263 l -5.50079,10.20397 c -0.46952,0.84791 0.0424,2.0628 0.96264,2.0628 l 11.57917,0 c 0.86404,0 1.67498,-1.02041 1.07266,-2.0628 l -5.55581,-10.14897 c -0.35092,-0.56871 -0.83018,-0.88243 -1.29269,-0.90763 z m 0.055,3.4655 c 0.47921,-0.0151 0.92281,0.42842 0.90763,0.90764 l 0,3.4655 c 0.006,0.46498 -0.41509,0.88012 -0.88012,0.88012 -0.46503,0 -0.8867,-0.41514 -0.88013,-0.88012 l 0,-3.4655 c -0.007,-0.41067 0.31165,-0.80315 0.7151,-0.88013 0.045,-0.0128 0.091,-0.0219 0.13752,-0.0275 z m 0.0275,6.13339 c 0.48608,0 0.88013,0.39405 0.88013,0.88013 0,0.48607 -0.39405,0.88013 -0.88013,0.88013 -0.48607,0 -0.88012,-0.39406 -0.88012,-0.88013 0,-0.48608 0.39405,-0.88013 0.88012,-0.88013 z"
|
||||
id="path18112"
|
||||
style="color:#bebebe;fill:#ee3333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988000000006;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ee3333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;enable-background:new" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
|
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
@ -11,9 +11,9 @@
|
|||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg7384"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.5 r10040"
|
||||
inkscape:version="0.91 r13725"
|
||||
height="16"
|
||||
sodipodi:docname="info.svg"
|
||||
sodipodi:docname="unknown.svg"
|
||||
width="16">
|
||||
<metadata
|
||||
id="metadata90">
|
||||
|
@ -28,7 +28,7 @@
|
|||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
inkscape:cy="2.2028437"
|
||||
inkscape:cy="8"
|
||||
inkscape:current-layer="layer9"
|
||||
inkscape:window-width="1920"
|
||||
pagecolor="#555753"
|
||||
|
@ -48,11 +48,11 @@
|
|||
inkscape:snap-global="true"
|
||||
inkscape:window-y="27"
|
||||
gridtolerance="10"
|
||||
inkscape:zoom="7.9687808"
|
||||
inkscape:window-height="1014"
|
||||
inkscape:zoom="51.6875"
|
||||
inkscape:window-height="1016"
|
||||
borderopacity="1"
|
||||
guidetolerance="10"
|
||||
inkscape:cx="5.435957"
|
||||
inkscape:cx="8"
|
||||
inkscape:bbox-paths="false"
|
||||
inkscape:snap-grids="true"
|
||||
inkscape:pageopacity="1"
|
||||
|
@ -78,9 +78,9 @@
|
|||
inkscape:label="status"
|
||||
style="display:inline">
|
||||
<path
|
||||
d="m 287.53551,259.96102 c -0.32661,0 -0.66541,0.12985 -0.91815,0.38255 l -5.20278,5.20277 c -0.50544,0.50543 -0.50544,1.33087 0,1.83629 l 5.20278,5.20279 c 0.50544,0.50541 1.33084,0.50541 1.83629,0 l 5.20277,-5.20279 c 0.50544,-0.50542 0.50544,-1.33086 0,-1.83629 l -5.20277,-5.20277 c -0.25273,-0.2527 -0.59154,-0.38255 -0.91814,-0.38255 z m -0.15302,2.42286 c 1.34042,-0.075 2.52629,0.95493 2.60138,2.29534 -8e-5,1.14368 -0.30825,1.56841 -1.30069,2.32085 -0.15583,0.11723 -0.26573,0.20453 -0.30604,0.25504 -0.0403,0.0507 -0.0254,0.0271 -0.0254,0.0254 0.006,0.43119 -0.38491,0.81613 -0.81612,0.81613 -0.43122,0 -0.82184,-0.38494 -0.81612,-0.81613 0,-0.41 0.183,-0.76994 0.38255,-1.02014 0.19955,-0.25025 0.40096,-0.42144 0.58659,-0.56109 0.16652,-0.13104 0.37609,-0.31383 0.56108,-0.53558 0.0763,-0.0915 0.10528,-0.25108 0.10202,-0.35706 l 0,-0.0255 c -0.0258,-0.45966 -0.40746,-0.7909 -0.86714,-0.76511 -0.45966,0.0258 -0.79089,0.35644 -0.7651,0.81613 l -1.63226,0 c -0.075,-1.34043 0.95494,-2.37322 2.29535,-2.44838 z m 0.15302,6.52899 c 0.45072,0 0.81612,0.36539 0.81612,0.81611 0,0.45073 -0.3654,0.81612 -0.81612,0.81612 -0.45072,0 -0.81612,-0.36539 -0.81612,-0.81612 0,-0.45072 0.3654,-0.81611 0.81612,-0.81611 z"
|
||||
d="m 289.00021,258.49827 c -0.32661,0 -0.66541,0.12985 -0.91815,0.38255 l -5.20278,5.20277 c -0.50544,0.50543 -0.50544,1.33087 0,1.83629 l 5.20278,5.20279 c 0.50544,0.50541 1.33084,0.50541 1.83629,0 l 5.20277,-5.20279 c 0.50544,-0.50542 0.50544,-1.33086 0,-1.83629 l -5.20277,-5.20277 c -0.25273,-0.2527 -0.59154,-0.38255 -0.91814,-0.38255 z m -0.15302,2.42286 c 1.34042,-0.075 2.52629,0.95493 2.60138,2.29534 -8e-5,1.14368 -0.30825,1.56841 -1.30069,2.32085 -0.15583,0.11723 -0.26573,0.20453 -0.30604,0.25504 -0.0403,0.0507 -0.0254,0.0271 -0.0254,0.0254 0.006,0.43119 -0.38491,0.81613 -0.81612,0.81613 -0.43122,0 -0.82184,-0.38494 -0.81612,-0.81613 0,-0.41 0.183,-0.76994 0.38255,-1.02014 0.19955,-0.25025 0.40096,-0.42144 0.58659,-0.56109 0.16652,-0.13104 0.37609,-0.31383 0.56108,-0.53558 0.0763,-0.0915 0.10528,-0.25108 0.10202,-0.35706 l 0,-0.0255 c -0.0258,-0.45966 -0.40746,-0.7909 -0.86714,-0.76511 -0.45966,0.0258 -0.79089,0.35644 -0.7651,0.81613 l -1.63226,0 c -0.075,-1.34043 0.95494,-2.37322 2.29535,-2.44838 z m 0.15302,6.52899 c 0.45072,0 0.81612,0.36539 0.81612,0.81611 0,0.45073 -0.3654,0.81612 -0.81612,0.81612 -0.45072,0 -0.81612,-0.36539 -0.81612,-0.81612 0,-0.45072 0.3654,-0.81611 0.81612,-0.81611 z"
|
||||
id="path19592"
|
||||
style="color:#bebebe;fill:#748cc9;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible"
|
||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#748cc9;fill-opacity:1;stroke:none;stroke-width:2;marker:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
|
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
@ -33,8 +33,8 @@
|
|||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
inkscape:current-layer="layer9"
|
||||
inkscape:cx="-4.1997805"
|
||||
inkscape:cy="10.353371"
|
||||
inkscape:cx="8"
|
||||
inkscape:cy="8"
|
||||
gridtolerance="10"
|
||||
inkscape:guide-bbox="true"
|
||||
guidetolerance="10"
|
||||
|
@ -60,7 +60,7 @@
|
|||
inkscape:window-width="1920"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:zoom="23.610133">
|
||||
inkscape:zoom="51.6875">
|
||||
<inkscape:grid
|
||||
empspacing="2"
|
||||
enabled="true"
|
||||
|
@ -100,9 +100,9 @@
|
|||
transform="translate(-321,-257)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 328.90645,257.09375 c -0.5255,-0.0286 -1.03823,0.28305 -1.4375,0.96875 l -6.25,11.59375 C 320.68548,270.61964 321.26717,272 322.3127,272 l 13.15625,0 c 0.98172,0 1.90311,-1.15939 1.21875,-2.34375 L 330.3752,258.125 c -0.39872,-0.64617 -0.94325,-1.00262 -1.46875,-1.03125 z m 0.0625,3.9375 c 0.54448,-0.0172 1.04849,0.48677 1.03125,1.03125 l 0,3.9375 c 0.007,0.52831 -0.47163,1 -1,1 -0.52836,0 -1.00747,-0.47169 -1,-1 l 0,-3.9375 c -0.008,-0.4666 0.3541,-0.91253 0.8125,-1 0.0511,-0.0145 0.10345,-0.0249 0.15625,-0.0312 z M 329.0002,268 c 0.55228,0 1,0.44772 1,1 0,0.55228 -0.44772,1 -1,1 -0.55228,0 -1,-0.44772 -1,-1 0,-0.55228 0.44772,-1 1,-1 z"
|
||||
d="m 328.94324,258.44109 c -0.4625,-0.0252 -0.91377,0.24912 -1.26518,0.85263 l -5.50079,10.20397 c -0.46952,0.84791 0.0424,2.0628 0.96264,2.0628 l 11.57917,0 c 0.86404,0 1.67498,-1.02041 1.07266,-2.0628 l -5.55581,-10.14897 c -0.35092,-0.56871 -0.83018,-0.88243 -1.29269,-0.90763 z m 0.055,3.4655 c 0.47921,-0.0151 0.92281,0.42842 0.90763,0.90764 l 0,3.4655 c 0.006,0.46498 -0.41509,0.88012 -0.88012,0.88012 -0.46503,0 -0.8867,-0.41514 -0.88013,-0.88012 l 0,-3.4655 c -0.007,-0.41067 0.31165,-0.80315 0.7151,-0.88013 0.045,-0.0128 0.091,-0.0219 0.13752,-0.0275 z m 0.0275,6.13339 c 0.48608,0 0.88013,0.39405 0.88013,0.88013 0,0.48607 -0.39405,0.88013 -0.88013,0.88013 -0.48607,0 -0.88012,-0.39406 -0.88012,-0.88013 0,-0.48608 0.39405,-0.88013 0.88012,-0.88013 z"
|
||||
id="path18112"
|
||||
style="color:#bebebe;fill:#ffb920;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
|
||||
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#ffb920;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;enable-background:new" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
|
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.9 KiB |
|
@ -47,7 +47,7 @@ Db.Conn.implement
|
|||
* @param {Boolean} remember Specifies if the user should be remembered
|
||||
* @param {Function} openCallback The function to call when operation is done
|
||||
**/
|
||||
,open: function (user, pass, remember, openCallback)
|
||||
,open: function (user, pass, remember, openCallback, guest)
|
||||
{
|
||||
this.signalEmit ('loading-changed', true);
|
||||
|
||||
|
@ -63,6 +63,8 @@ Db.Conn.implement
|
|||
,'remember': remember
|
||||
});
|
||||
}
|
||||
else if (guest)
|
||||
request.add ({'guest': true});
|
||||
|
||||
request.send ('rest.php',
|
||||
this.opened.bind (this, request, openCallback));
|
||||
|
|
|
@ -94,17 +94,12 @@ Db.Param = new Class
|
|||
|
||||
var formValue;
|
||||
|
||||
if (this._columnIndex != -1)
|
||||
if (this._columnIndex !== -1)
|
||||
formValue = this._form.getByIndex (this._columnIndex);
|
||||
else
|
||||
formValue = null;
|
||||
formValue = undefined;
|
||||
|
||||
if (formValue != this._formValue)
|
||||
{
|
||||
this.value = formValue;
|
||||
this._formValue = formValue;
|
||||
}
|
||||
|
||||
this._formLock = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,30 +3,77 @@ Vn.App = new Class
|
|||
({
|
||||
Extends: Vn.Object
|
||||
|
||||
,_guestLogged: false
|
||||
|
||||
,initialize: function ()
|
||||
{
|
||||
window.onerror = this.onWindowError.bind (this);
|
||||
window.onerror = this._onWindowError.bind (this);
|
||||
window.onunload = this._onWindowUnload.bind (this);
|
||||
Vn.Hash.initialize ();
|
||||
|
||||
this.conn = new Db.Conn ();
|
||||
this.login = new Vn.Login ({conn: this.conn});
|
||||
this._isGuest = new Vn.HashParam
|
||||
({
|
||||
type: Boolean,
|
||||
key: 'guest'
|
||||
});
|
||||
this._isGuest.on ('changed', this._onGuestChange, this);
|
||||
|
||||
this._conn = new Db.Conn ();
|
||||
}
|
||||
|
||||
,run: function ()
|
||||
{
|
||||
if (Vn.Cookie.check ('vn_pass'))
|
||||
{
|
||||
this.conn.open (null, null, null,
|
||||
this.onAutoLogin.bind (this));
|
||||
this._conn.open (null, null, null,
|
||||
this._onAutoLogin.bind (this));
|
||||
}
|
||||
else if (this._isGuest.value || Vn.Cookie.check ('hedera_guest'))
|
||||
{
|
||||
this._guestLogin ();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.login.on ('login', this.onLogin, this);
|
||||
this.login.show ();
|
||||
var login = this._login = new Vn.Login ({conn: this._conn});
|
||||
login.on ('login', this._onLogin, this);
|
||||
login.show ();
|
||||
}
|
||||
}
|
||||
|
||||
,onAutoLogin: function (success)
|
||||
,_onGuestChange: function ()
|
||||
{
|
||||
if (this._isGuest.value)
|
||||
this._guestLogin ();
|
||||
}
|
||||
|
||||
,_guestLogin: function ()
|
||||
{
|
||||
this._conn.open (
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
this._onGuestLogin.bind (this),
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
,_onGuestLogin: function (conn, success)
|
||||
{
|
||||
if (!success)
|
||||
{
|
||||
this._isGuest.value = false;
|
||||
Vn.Cookie.unset ('hedera_guest');
|
||||
this.run ();
|
||||
}
|
||||
else
|
||||
{
|
||||
this._guestLogged = true;
|
||||
Vn.Cookie.set ('hedera_guest', true);
|
||||
this._showGui ();
|
||||
}
|
||||
}
|
||||
|
||||
,_onAutoLogin: function (success)
|
||||
{
|
||||
if (!success)
|
||||
{
|
||||
|
@ -34,38 +81,48 @@ Vn.App = new Class
|
|||
this.run ();
|
||||
}
|
||||
else
|
||||
this.onLogin ();
|
||||
this._showGui ();
|
||||
}
|
||||
|
||||
,onLogin: function ()
|
||||
,_onLogin: function ()
|
||||
{
|
||||
this.login.disconnectByInstance (this);
|
||||
this.login.hide ();
|
||||
this._freeLogin ();
|
||||
this._showGui ();
|
||||
}
|
||||
|
||||
var gui = new Vn.Gui ({conn: this.conn});
|
||||
gui.on ('logout', this.onLogout, this);
|
||||
,_showGui: function ()
|
||||
{
|
||||
var gui = this._gui = new Vn.Gui ({conn: this._conn});
|
||||
gui.on ('logout', this._onLogout, this);
|
||||
gui.show ();
|
||||
}
|
||||
|
||||
,onLogout: function (gui)
|
||||
,_onLogout: function (gui)
|
||||
{
|
||||
gui.hide ();
|
||||
gui.unref ();
|
||||
this._freeGui ();
|
||||
this._guestLogged = false;
|
||||
Vn.Cookie.unset ('hedera_guest');
|
||||
Vn.Cookie.unset ('vn_pass');
|
||||
Vn.Hash.set (null);
|
||||
this.run ();
|
||||
}
|
||||
|
||||
,onWindowError: function (message, file, line)
|
||||
,_onWindowError: function (message, file, line)
|
||||
{
|
||||
var error = new Error (message);
|
||||
error.fileName = file;
|
||||
error.lineNumber = line;
|
||||
|
||||
Htk.Toast.showError (_('There was an internal error'));
|
||||
this.notifyError (error);
|
||||
this._notifyError (error);
|
||||
}
|
||||
|
||||
,notifyError: function (error)
|
||||
,_onWindowUnload: function ()
|
||||
{
|
||||
this.unref ();
|
||||
}
|
||||
|
||||
,_notifyError: function (error)
|
||||
{
|
||||
if (error instanceof Error)
|
||||
{
|
||||
|
@ -81,9 +138,32 @@ Vn.App = new Class
|
|||
}
|
||||
}
|
||||
|
||||
,_freeLogin: function ()
|
||||
{
|
||||
if (this._login)
|
||||
{
|
||||
this._login.disconnectByInstance (this);
|
||||
this._login.hide ();
|
||||
this._login.unref ();
|
||||
this._login = null;
|
||||
}
|
||||
}
|
||||
|
||||
,_freeGui: function ()
|
||||
{
|
||||
if (this._gui)
|
||||
{
|
||||
this._gui.disconnectByInstance (this);
|
||||
this._gui.hide ();
|
||||
this._gui.unref ();
|
||||
this._gui = null;
|
||||
}
|
||||
}
|
||||
|
||||
,_destroy: function ()
|
||||
{
|
||||
this.login.unref ();
|
||||
this.conn.unref ();
|
||||
this._freeLogin ();
|
||||
this._freeGui ();
|
||||
this._conn.unref ();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -3,6 +3,9 @@ Vn.Form = new Class
|
|||
({
|
||||
Extends: Vn.Object
|
||||
|
||||
,isOpen: false
|
||||
,uiLoaded: false
|
||||
|
||||
,initialize: function (gui, formInfo)
|
||||
{
|
||||
this.gui = gui;
|
||||
|
@ -25,12 +28,10 @@ Vn.Form = new Class
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the form is opened.
|
||||
**/
|
||||
,open: function ()
|
||||
,loadUi: function ()
|
||||
{
|
||||
this.close ();
|
||||
if (!this.isOpen)
|
||||
return;
|
||||
|
||||
var builder = new Vn.Builder ();
|
||||
builder.signalData = this;
|
||||
|
@ -51,9 +52,58 @@ Vn.Form = new Class
|
|||
for (var i = 0; i < queries.length; i++)
|
||||
queries[i].conn = this.conn;
|
||||
|
||||
if (this.node)
|
||||
{
|
||||
this.gui.formHolder.appendChild (this.node);
|
||||
this.gui.setTitle (res.$('title'));
|
||||
this.gui.setActions (res.$('actions'));
|
||||
this.activate ();
|
||||
}
|
||||
|
||||
this.uiLoaded = true;
|
||||
}
|
||||
|
||||
,unloadUi: function ()
|
||||
{
|
||||
if (!this.uiLoaded)
|
||||
return;
|
||||
|
||||
if (this.node)
|
||||
{
|
||||
this.deactivate ();
|
||||
this.gui.setTitle (null);
|
||||
this.gui.setActions (null);
|
||||
Vn.Node.remove (this.node);
|
||||
this.deactivate ();
|
||||
this.node = null;
|
||||
}
|
||||
if (this.builder)
|
||||
{
|
||||
this.builder.unref ();
|
||||
this.builder = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the form is opened.
|
||||
**/
|
||||
,open: function ()
|
||||
{
|
||||
this.close ();
|
||||
this.isOpen = true;
|
||||
this.loadUi ();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the form is closed.
|
||||
**/
|
||||
,close: function ()
|
||||
{
|
||||
if (!this.isOpen)
|
||||
return;
|
||||
|
||||
this.isOpen = false;
|
||||
this.unloadUi ();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -66,25 +116,6 @@ Vn.Form = new Class
|
|||
**/
|
||||
,deactivate: function () {}
|
||||
|
||||
/**
|
||||
* Called when the form is closed.
|
||||
**/
|
||||
,close: function ()
|
||||
{
|
||||
if (this.node)
|
||||
{
|
||||
this.gui.setTitle (null);
|
||||
this.gui.setActions (null);
|
||||
Vn.Node.remove (this.node);
|
||||
this.node = null;
|
||||
}
|
||||
if (this.builder)
|
||||
{
|
||||
this.builder.unref ();
|
||||
this.builder = null;
|
||||
}
|
||||
}
|
||||
|
||||
,_destroy: function ()
|
||||
{
|
||||
this.close ();
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
width: 100%;
|
||||
z-index: 1;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0.1em 0.1em #AAA;
|
||||
box-shadow: 0 0.1em 0.1em rgba(1, 1, 1, 0.3);
|
||||
}
|
||||
.vn-gui .top-bar
|
||||
{
|
||||
|
@ -211,7 +211,7 @@
|
|||
top: 0;
|
||||
background-color: white;
|
||||
z-index: 20;
|
||||
box-shadow: 0 0.2em 0.2em #AAA;
|
||||
box-shadow: 0 0.2em 0.2em rgba(1, 1, 1, 0.4);
|
||||
}
|
||||
.vn-gui .menu-overflow
|
||||
{
|
||||
|
@ -397,7 +397,7 @@
|
|||
}
|
||||
.htk-toast
|
||||
{
|
||||
margin-left: -11em;
|
||||
margin-left: -10.5em;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
Vn.includeCss ('js/hedera/gui.css');
|
||||
Vn.resource ('js/hedera/gui.xml');
|
||||
Vn.define (function () {
|
||||
|
||||
|
@ -10,12 +9,13 @@ Vn.Gui = new Class
|
|||
{
|
||||
conn:
|
||||
{
|
||||
set: function (x)
|
||||
type: Db.Conn
|
||||
,set: function (x)
|
||||
{
|
||||
this.link ({_conn: x},
|
||||
{
|
||||
'error': this.onConnError
|
||||
,'loading-changed': this.onConnLoading
|
||||
,'loading-changed': this._onConnLoadChange
|
||||
});
|
||||
|
||||
var sql = 'SELECT default_form, image_dir, image_host FROM config;'
|
||||
|
@ -23,8 +23,8 @@ Vn.Gui = new Class
|
|||
+'SELECT name FROM customer_user;'
|
||||
+'CALL form_list ();';
|
||||
this.conn.execQuery (sql, this.onMainQueryDone.bind (this));
|
||||
},
|
||||
get: function ()
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._conn;
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ Vn.Gui = new Class
|
|||
|
||||
,initialize: function (props)
|
||||
{
|
||||
this.parent (props);
|
||||
Vn.includeCss ('js/hedera/gui.css');
|
||||
this.builderInit ('js/hedera/gui.xml');
|
||||
|
||||
this.loadingCount = 0;
|
||||
|
@ -72,6 +72,8 @@ Vn.Gui = new Class
|
|||
|
||||
if (Vn.Cookie.check ('hedera_supplant'))
|
||||
this.supplantUser (Vn.Cookie.get ('hedera_supplant'));
|
||||
|
||||
this.parent (props);
|
||||
}
|
||||
|
||||
,show: function ()
|
||||
|
@ -243,7 +245,7 @@ Vn.Gui = new Class
|
|||
this.errorHandler (error);
|
||||
}
|
||||
|
||||
,onConnLoading: function (conn, isLoading)
|
||||
,_onConnLoadChange: function (conn, isLoading)
|
||||
{
|
||||
if (isLoading)
|
||||
this.loaderPush ();
|
||||
|
@ -425,7 +427,6 @@ Vn.Gui = new Class
|
|||
|
||||
this.activeForm = new formInfo.klass (this, formInfo);
|
||||
this.activeForm.open ();
|
||||
this.activeForm.activate ();
|
||||
}
|
||||
|
||||
,setTitle: function (title)
|
||||
|
@ -448,7 +449,6 @@ Vn.Gui = new Class
|
|||
{
|
||||
if (this.activeForm)
|
||||
{
|
||||
this.activeForm.deactivate ();
|
||||
this.activeForm.close ();
|
||||
this.activeForm.unref ();
|
||||
this.activeForm = null;
|
||||
|
@ -544,6 +544,7 @@ Vn.Gui = new Class
|
|||
|
||||
,_destroy: function ()
|
||||
{
|
||||
Vn.excludeCss ('js/hedera/gui.css');
|
||||
this.hide ();
|
||||
this.hashParam.unref ();
|
||||
this.parent ();
|
||||
|
|
|
@ -7,14 +7,17 @@
|
|||
.vn-login p,
|
||||
.vn-login a
|
||||
{
|
||||
font-size: 1.2em;
|
||||
font-size: 1.1em;
|
||||
font-weight: normal;
|
||||
color: #333;
|
||||
/* text-shadow: 0 0.2em 0.2em #AAA; */
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.vn-login
|
||||
{
|
||||
color: #333;
|
||||
}
|
||||
.vn-login .header
|
||||
{
|
||||
z-index: 10;
|
||||
|
@ -119,9 +122,17 @@
|
|||
{
|
||||
text-align: left;
|
||||
}
|
||||
.vn-login .submit
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
.vn-login .submit > *
|
||||
{
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
.vn-login input[type=submit]
|
||||
{
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
background-color: #AD4;
|
||||
border: 1px solid #8B2;
|
||||
|
@ -133,6 +144,17 @@
|
|||
{
|
||||
background-color: #9C3;
|
||||
}
|
||||
.vn-login .wrapper
|
||||
{
|
||||
width: 0;
|
||||
overflow: visible;
|
||||
position: relative;
|
||||
}
|
||||
.vn-login .htk-spinner
|
||||
{
|
||||
margin: .45em 1em;
|
||||
position: absolute;
|
||||
}
|
||||
.vn-login .bottom
|
||||
{
|
||||
text-align: center;
|
||||
|
|
|
@ -5,19 +5,52 @@ Vn.define (function () {
|
|||
|
||||
Vn.Login = new Class
|
||||
({
|
||||
Extends: Htk.Widget
|
||||
Extends: Htk.Widget,
|
||||
Properties:
|
||||
{
|
||||
conn:
|
||||
{
|
||||
type: Db.Conn
|
||||
,set: function (x)
|
||||
{
|
||||
this.link ({_conn: x}, {'loading-changed': this._onConnLoadChange});
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._conn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
,initialize: function (props)
|
||||
{
|
||||
this.parent (props);
|
||||
this.builderInit ('js/hedera/login.xml');
|
||||
|
||||
var self = this;
|
||||
this.$('form').onsubmit = function ()
|
||||
{
|
||||
self.onSubmit ();
|
||||
self._onSubmit ();
|
||||
return false;
|
||||
};
|
||||
|
||||
this.parent (props);
|
||||
}
|
||||
|
||||
,_onConnLoadChange: function (conn, isLoading)
|
||||
{
|
||||
this._disableUi (isLoading);
|
||||
}
|
||||
|
||||
,_disableUi: function (disabled)
|
||||
{
|
||||
if (disabled)
|
||||
this.$('spinner').start ();
|
||||
else
|
||||
this.$('spinner').stop ();
|
||||
|
||||
this.$('user').disabled = disabled;
|
||||
this.$('pass').disabled = disabled;
|
||||
this.$('submit').disabled = disabled;
|
||||
}
|
||||
|
||||
,show: function ()
|
||||
|
@ -27,7 +60,7 @@ Vn.Login = new Class
|
|||
if (Vn.Cookie.check ('vn_user'))
|
||||
this.$('user').value = Vn.Cookie.get ('vn_user');
|
||||
|
||||
this.focusUserInput ();
|
||||
this._focusUserInput ();
|
||||
}
|
||||
|
||||
,hide: function ()
|
||||
|
@ -35,44 +68,33 @@ Vn.Login = new Class
|
|||
Vn.Node.remove (this.node);
|
||||
}
|
||||
|
||||
,focusUserInput: function ()
|
||||
,_focusUserInput: function ()
|
||||
{
|
||||
var userEntry = this.$('user');
|
||||
userEntry.focus ();
|
||||
userEntry.select ();
|
||||
}
|
||||
|
||||
,disableInputs: function (disabled)
|
||||
,_onSubmit: function ()
|
||||
{
|
||||
this.$('user').disabled = disabled;
|
||||
this.$('pass').disabled = disabled;
|
||||
this.$('submit').disabled = disabled;
|
||||
}
|
||||
|
||||
,onSubmit: function ()
|
||||
{
|
||||
this.disableInputs (true);
|
||||
this.conn.open (
|
||||
this._conn.open (
|
||||
this.$('user').value,
|
||||
this.$('pass').value,
|
||||
this.$('remember').value,
|
||||
this.onConnOpen.bind (this)
|
||||
this._onConnOpen.bind (this)
|
||||
);
|
||||
}
|
||||
|
||||
,onConnOpen: function (conn, success)
|
||||
,_onConnOpen: function (conn, success)
|
||||
{
|
||||
this.$('pass').value = '';
|
||||
|
||||
if (!success)
|
||||
{
|
||||
Htk.Toast.showError (_('Invalid login'));
|
||||
}
|
||||
else
|
||||
this.signalEmit ('login');
|
||||
|
||||
this.disableInputs (false);
|
||||
this.focusUserInput ();
|
||||
this._focusUserInput ();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div id="main" class="vn-login">
|
||||
<div class="header">
|
||||
<div>
|
||||
<a href="#!page=web&guest=true&form=cms/about">
|
||||
<a href="#!form=cms/about&guest=true">
|
||||
<t>I want to know more</t>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -29,8 +29,11 @@
|
|||
<input type="checkbox" id="remember" name="remember"/>
|
||||
<label for="remember"><t>Do not sign out</t></label>
|
||||
</div>
|
||||
<div>
|
||||
<div class="submit">
|
||||
<input id="submit" type="submit" value="_Enter"/>
|
||||
<div class="wrapper">
|
||||
<htk-spinner id="spinner"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info">
|
||||
<p><t>Login mail</t></p>
|
||||
|
|
|
@ -3,15 +3,15 @@
|
|||
|
||||
@media screen
|
||||
{
|
||||
* { font-size: 12pt; }
|
||||
body { font-size: 12pt; }
|
||||
}
|
||||
@media (min-resolution: 120dpi) and (orientation: portrait)
|
||||
{
|
||||
* { font-size: 11pt; }
|
||||
body { font-size: 11pt; }
|
||||
}
|
||||
@media (min-resolution: 120dpi) and (orientation: landscape)
|
||||
{
|
||||
* { font-size: 11pt; }
|
||||
body { font-size: 11pt; }
|
||||
}
|
||||
|
||||
/* Global */
|
||||
|
@ -20,21 +20,21 @@ body
|
|||
{
|
||||
color: #333;
|
||||
margin: 0;
|
||||
font-family: 'Open Sans', 'Verdana', 'Sans';
|
||||
}
|
||||
body,
|
||||
label,
|
||||
button,
|
||||
input,
|
||||
textarea,
|
||||
select,
|
||||
textarea,
|
||||
option
|
||||
{
|
||||
font-size: 1em;
|
||||
font-family: 'Open Sans', 'Verdana', 'Sans';
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
}
|
||||
iframe
|
||||
{
|
||||
border: 0;
|
||||
border: none;
|
||||
}
|
||||
fieldset,
|
||||
div
|
||||
|
@ -91,14 +91,18 @@ p
|
|||
outline: 1px solid rgba(1, 1, 1, 0.15);
|
||||
-moz-outline-radius: .1em;
|
||||
}
|
||||
button::-moz-focus-inner
|
||||
button::-moz-focus-inner,
|
||||
input[type=submit]::-moz-focus-inner,
|
||||
input[type=button]::-moz-focus-inner,
|
||||
input[type=reset]::-moz-focus-inner
|
||||
{
|
||||
border: none;
|
||||
}
|
||||
select:focus
|
||||
select:-moz-focusring
|
||||
{
|
||||
color: transparent;
|
||||
text-shadow: 0 0 0 #333;
|
||||
outline: none;
|
||||
/* color: transparent;
|
||||
text-shadow: 0 0 0 #333;*/
|
||||
}
|
||||
|
||||
/* Inputs */
|
||||
|
@ -180,7 +184,8 @@ option
|
|||
|
||||
button,
|
||||
input[type=submit],
|
||||
input[type=button]
|
||||
input[type=button],
|
||||
input[type=reset]
|
||||
{
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
|
@ -191,7 +196,8 @@ input[type=button]
|
|||
}
|
||||
button:hover,
|
||||
input[type=submit]:hover,
|
||||
input[type=button]:hover
|
||||
input[type=button]:hover,
|
||||
input[type=reset]:hover
|
||||
{
|
||||
background-color: rgba(1, 1, 1, 0.1);
|
||||
}
|
||||
|
|
|
@ -80,24 +80,24 @@ Htk.ColumnImage = new Class
|
|||
,stamp: null
|
||||
};
|
||||
|
||||
this.setSrc (cell);
|
||||
this._setSrc (cell);
|
||||
|
||||
if (this.showFull)
|
||||
{
|
||||
img.addEventListener ('mouseover', this.onMouseOver.bind (this, cell));
|
||||
img.addEventListener ('mouseout', this.onMouseOut.bind (this));
|
||||
img.addEventListener ('mouseover', this._onMouseOver.bind (this, cell));
|
||||
img.addEventListener ('mouseout', this._onMouseOut.bind (this));
|
||||
}
|
||||
if (this.editable)
|
||||
{
|
||||
img.className = 'editable';
|
||||
img.addEventListener ('dblclick', this.onDoubleClick.bind (this, cell));
|
||||
img.addEventListener ('error', this.onImageError.bind (this, cell));
|
||||
img.addEventListener ('dblclick', this._onDoubleClick.bind (this, cell));
|
||||
img.addEventListener ('error', this._onImageError.bind (this, cell));
|
||||
}
|
||||
|
||||
return td;
|
||||
}
|
||||
|
||||
,setSrc: function (cell)
|
||||
,_setSrc: function (cell)
|
||||
{
|
||||
if (cell.value)
|
||||
{
|
||||
|
@ -114,47 +114,49 @@ Htk.ColumnImage = new Class
|
|||
cell.img.src = url;
|
||||
}
|
||||
else
|
||||
this.onImageError (cell);
|
||||
this._onImageError (cell);
|
||||
}
|
||||
|
||||
,onImageError: function (cell)
|
||||
,_onImageError: function (cell)
|
||||
{
|
||||
if (!cell.error)
|
||||
{
|
||||
cell.error = true;
|
||||
cell.img.src = 'image/empty.png';
|
||||
cell.img.src = 'image/unknown.svg';
|
||||
}
|
||||
}
|
||||
|
||||
,onMouseOver: function (cell)
|
||||
,_onMouseOver: function (cell)
|
||||
{
|
||||
if (cell.error)
|
||||
return;
|
||||
|
||||
var src = this._fullDir ? this._fullDir : 'full';
|
||||
src += '/'+ cell.value;
|
||||
|
||||
if (cell.stamp)
|
||||
src += '?'+ cell.stamp;
|
||||
|
||||
if (!cell.error)
|
||||
this._fullImage.show (this._basedir +'/'+ src);
|
||||
}
|
||||
|
||||
,onMouseOut: function ()
|
||||
,_onMouseOut: function ()
|
||||
{
|
||||
this._fullImage.hide ();
|
||||
}
|
||||
|
||||
,onDoubleClick: function (cell)
|
||||
,_onDoubleClick: function (cell)
|
||||
{
|
||||
var editor = new Htk.ImageEditor ();
|
||||
editor.setData (cell.value, this._directory);
|
||||
|
||||
this.nameChangedHandler = this.onNameChange.bind (this, cell);
|
||||
this.nameChangedHandler = this._onNameChange.bind (this, cell);
|
||||
editor.on ('name-changed', this.nameChangedHandler);
|
||||
|
||||
this.fileUploadedHandler = this.onFileUpload.bind (this, cell);
|
||||
this.fileUploadedHandler = this._onFileUpload.bind (this, cell);
|
||||
editor.on ('file-uploaded', this.fileUploadedHandler);
|
||||
|
||||
this.editorClosedHandler = this.onEditorClose.bind (this);
|
||||
this.editorClosedHandler = this._onEditorClose.bind (this);
|
||||
editor.on ('closed', this.editorClosedHandler);
|
||||
|
||||
this.popup = new Htk.Popup ();
|
||||
|
@ -162,21 +164,21 @@ Htk.ColumnImage = new Class
|
|||
this.popup.show (cell.img);
|
||||
}
|
||||
|
||||
,onNameChange: function (cell, editor, value)
|
||||
,_onNameChange: function (cell, editor, value)
|
||||
{
|
||||
cell.value = value;
|
||||
this.setSrc (cell);
|
||||
this._setSrc (cell);
|
||||
this.changed (cell.tr, value);
|
||||
}
|
||||
|
||||
,onFileUpload: function (cell, editor)
|
||||
,_onFileUpload: function (cell, editor)
|
||||
{
|
||||
cell.stamp = new Date ().getTime ();
|
||||
this.setSrc (cell);
|
||||
this._setSrc (cell);
|
||||
this.popup.hide ();
|
||||
}
|
||||
|
||||
,onEditorClose: function (editor)
|
||||
,_onEditorClose: function (editor)
|
||||
{
|
||||
editor.disconnect ('name-changed', this.nameChangedHandler);
|
||||
editor.disconnect ('file-uploaded', this.fileUploadedHandler);
|
||||
|
|
|
@ -33,34 +33,37 @@ Htk.DateChooser = new Class
|
|||
}
|
||||
|
||||
,setEditable: function (editable)
|
||||
{
|
||||
if (editable && !this.calendar)
|
||||
{
|
||||
Vn.Node.remove (this.label);
|
||||
|
||||
if (this.calendar)
|
||||
{
|
||||
this.node.removeChild (this.button);
|
||||
|
||||
this.calendar.disconnectByInstance (this);
|
||||
this.calendar = null;
|
||||
}
|
||||
|
||||
if (editable && !this.calendar)
|
||||
{
|
||||
this.button = document.createElement ('button');
|
||||
this.button.className = 'input';
|
||||
this.button.title = _('ChangeDate');
|
||||
this.button.addEventListener ('click', this.showCalendar.bind (this));
|
||||
this.button.addEventListener ('click', this._onClick.bind (this));
|
||||
this.button.appendChild (this.label);
|
||||
this.node.appendChild (this.button);
|
||||
|
||||
this.calendar = new Htk.Calendar ();
|
||||
this.calendar.on ('changed', this.calendarChanged.bind (this));
|
||||
this.calendar.on ('changed', this._onCalendarChange.bind (this));
|
||||
|
||||
this.popup = new Htk.Popup ();
|
||||
this.popup.setChild (this.calendar);
|
||||
}
|
||||
else if (!editable)
|
||||
{
|
||||
Vn.Node.remove (this.label);
|
||||
this.node.appendChild (this.label);
|
||||
this.calendar = null;
|
||||
this.node.removeChild (this.button);
|
||||
}
|
||||
}
|
||||
|
||||
,calendarChanged: function (calendar)
|
||||
,_onCalendarChange: function (calendar)
|
||||
{
|
||||
if (this.ignoreCalendarChange)
|
||||
return;
|
||||
|
@ -72,7 +75,7 @@ Htk.DateChooser = new Class
|
|||
this.valueChanged (newDate);
|
||||
}
|
||||
|
||||
,showCalendar: function (event)
|
||||
,_onClick: function (event)
|
||||
{
|
||||
this.ignoreCalendarChange = true;
|
||||
this.calendar.value = this._value;
|
||||
|
|
|
@ -19,7 +19,7 @@ Htk.Image = new Class
|
|||
{
|
||||
this._directory = x;
|
||||
this._basedir = Vn.Config['image_dir'] +'/'+ x;
|
||||
this.render (false);
|
||||
this._setSrc ();
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ Htk.Image = new Class
|
|||
,set: function (x)
|
||||
{
|
||||
this._subdir = x;
|
||||
this.render (false);
|
||||
this._setSrc ();
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
|
@ -56,8 +56,8 @@ Htk.Image = new Class
|
|||
fullImage = new Htk.FullImage ();
|
||||
|
||||
this._fullImage = fullImage;
|
||||
this.node.addEventListener ('mouseover', this.onMouseOver.bind (this));
|
||||
this.node.addEventListener ('mouseout', this.onMouseOut.bind (this));
|
||||
this.node.addEventListener ('mouseover', this._onMouseOver.bind (this));
|
||||
this.node.addEventListener ('mouseout', this._onMouseOut.bind (this));
|
||||
}
|
||||
|
||||
this._showFull = x;
|
||||
|
@ -87,28 +87,35 @@ Htk.Image = new Class
|
|||
,_directory: null
|
||||
,_subdir: null
|
||||
,_basedir: null
|
||||
,_empty: false
|
||||
,_error: false
|
||||
,_showFull: false
|
||||
,_fullDir: null
|
||||
,_editable: false
|
||||
|
||||
,initialize: function (props)
|
||||
{
|
||||
this.createElement ('img');
|
||||
// this.node.addEventListener ('error', this._onImageError.bind (this));
|
||||
this.node.className = 'htk-image';
|
||||
this.node.addEventListener ('error', this._onImageError.bind (this));
|
||||
|
||||
this.setEditable (this._editable);
|
||||
this.parent (props);
|
||||
}
|
||||
|
||||
,_onImageError: function ()
|
||||
,setEditable: function (editable)
|
||||
{
|
||||
if (!this._empty)
|
||||
if (editable)
|
||||
{
|
||||
this._empty = true;
|
||||
this.node.src = 'image/empty.png';
|
||||
Vn.Node.addClass (this.node, 'editable');
|
||||
this.node.addEventListener ('dblclick', this._onDoubleClick.bind (this));
|
||||
}
|
||||
else
|
||||
Vn.Node.removeClass (this.node, 'editable');
|
||||
|
||||
this._setEmpty ();
|
||||
}
|
||||
|
||||
,render: function (force)
|
||||
,_setSrc: function ()
|
||||
{
|
||||
if (this._value)
|
||||
{
|
||||
|
@ -122,28 +129,36 @@ Htk.Image = new Class
|
|||
|
||||
url += this._value;
|
||||
|
||||
if (force)
|
||||
url += '?' + (new Date()).getTime ();
|
||||
if (this._stamp)
|
||||
url += '?'+ this._stamp;
|
||||
|
||||
this._empty = false;
|
||||
this._error = false;
|
||||
this.node.src = url;
|
||||
this.node.style.display = '';
|
||||
}
|
||||
else
|
||||
{
|
||||
delete this.node.src;
|
||||
this.node.style.display = 'none';
|
||||
this._setEmpty ();
|
||||
}
|
||||
|
||||
,_setEmpty: function ()
|
||||
{
|
||||
if (this._value !== null && this._value !== '')
|
||||
return;
|
||||
|
||||
if (this._editable)
|
||||
this.node.src = 'image/add-photo.svg';
|
||||
else
|
||||
delete this.node.src;
|
||||
}
|
||||
|
||||
,putValue: function (value)
|
||||
{
|
||||
this.render (false);
|
||||
this._setSrc ();
|
||||
}
|
||||
|
||||
,onMouseOver: function (cell)
|
||||
,_onMouseOver: function ()
|
||||
{
|
||||
if (!this._showFull)
|
||||
if (!this._showFull || !this._value || this._error)
|
||||
return;
|
||||
|
||||
var src = this._fullDir ? this._fullDir : 'full';
|
||||
|
@ -152,34 +167,50 @@ Htk.Image = new Class
|
|||
if (this._stamp)
|
||||
src += '?'+ this._stamp;
|
||||
|
||||
if (!cell.error)
|
||||
this._fullImage.show (this._basedir +'/'+ src);
|
||||
}
|
||||
|
||||
,onMouseOut: function ()
|
||||
,_onMouseOut: function ()
|
||||
{
|
||||
this._fullImage.hide ();
|
||||
}
|
||||
|
||||
,setEditable: function (editable)
|
||||
,_onImageError: function ()
|
||||
{
|
||||
if (editable)
|
||||
{
|
||||
var obj = this;
|
||||
this.style.cursor = 'pointer';
|
||||
this.node.addEventListener ('dblclick',
|
||||
this.onDoubleClick.bind (this));
|
||||
}
|
||||
if (this._error)
|
||||
return;
|
||||
|
||||
this._error = true;
|
||||
}
|
||||
|
||||
,onDoubleClick: function (event)
|
||||
,_onDoubleClick: function ()
|
||||
{
|
||||
var editor = new Htk.ImageEditor ();
|
||||
editor.setData (cell.value, this._directory);
|
||||
editor.setData (this.value, this._directory);
|
||||
editor.on ('name-changed', this._onNameChange, this);
|
||||
editor.on ('file-uploaded', this._onFileUpload, this);
|
||||
editor.on ('closed', this._onEditorClose, this);
|
||||
|
||||
this.popup = new Htk.Popup ();
|
||||
this.popup.setChild (editor);
|
||||
this.popup.show (this.node);
|
||||
}
|
||||
|
||||
,_onNameChange: function (editor, value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
,_onFileUpload: function (cell, editor)
|
||||
{
|
||||
this._stamp = new Date ().getTime ();
|
||||
this.setSrc (cell);
|
||||
this.popup.hide ();
|
||||
}
|
||||
|
||||
,_onEditorClose: function (editor)
|
||||
{
|
||||
editor.disconnectByInstance (this);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -109,13 +109,19 @@ Htk.Select = new Class
|
|||
,showColumnIndex: 1
|
||||
,showColumnName: null
|
||||
,_notNull: true
|
||||
,_webkitRefresh: false
|
||||
|
||||
,initialize: function (props)
|
||||
{
|
||||
this.createElement ('select');
|
||||
this.node.addEventListener ('change', this._onChange.bind (this));
|
||||
this._addPlaceholder (this._placeholder);
|
||||
var select = this.createElement ('select');
|
||||
select.addEventListener ('change', this._onChange.bind (this));
|
||||
|
||||
// Webkit bug: Does not refresh select options
|
||||
if (navigator.userAgent.match (/WebKit/))
|
||||
select.addEventListener ('mousedown',
|
||||
this._onWebkitMouseDown.bind (this));
|
||||
|
||||
this._addPlaceholder (this._placeholder);
|
||||
this.parent (props);
|
||||
}
|
||||
|
||||
|
@ -230,29 +236,13 @@ Htk.Select = new Class
|
|||
this.addOption (data[i][this.showColumnIndex], data[i][1]);
|
||||
|
||||
this.selectOption ();
|
||||
this._onTimeout ();
|
||||
this.signalEmit ('ready');
|
||||
|
||||
}
|
||||
else
|
||||
this.setRow (-1);
|
||||
}
|
||||
|
||||
,_onTimeout: function ()
|
||||
{
|
||||
if (this._blockMouseDown || !navigator.userAgent.match (/WebKit/))
|
||||
return;
|
||||
|
||||
this._blockMouseDown = true;
|
||||
|
||||
this.node.blur();
|
||||
|
||||
var e = document.createEvent('MouseEvents');
|
||||
e.initMouseEvent ('mousedown',
|
||||
true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||
this.node.dispatchEvent(e);
|
||||
|
||||
this._blockMouseDown = false;
|
||||
this.node.focus ();
|
||||
this._webkitRefreshOptions ();
|
||||
}
|
||||
|
||||
,setEditable: function (editable)
|
||||
|
@ -276,4 +266,39 @@ Htk.Select = new Class
|
|||
{
|
||||
this.selectOption ();
|
||||
}
|
||||
|
||||
// Webkit bug: Does not refresh select options
|
||||
|
||||
,_webkitRefreshOptions: function ()
|
||||
{
|
||||
if (document.activeElement === this.node && this._webkitRefresh)
|
||||
{
|
||||
if (this._model.ready)
|
||||
this._webkitRefresh = false;
|
||||
|
||||
this.node.blur();
|
||||
this.node.focus ();
|
||||
setTimeout (this._onWebkitTimeout.bind (this), 0);
|
||||
}
|
||||
}
|
||||
|
||||
,_onWebkitMouseDown: function ()
|
||||
{
|
||||
if (this._webkitBlock)
|
||||
return;
|
||||
|
||||
this._webkitRefresh = true;
|
||||
}
|
||||
|
||||
,_onWebkitTimeout: function ()
|
||||
{
|
||||
this._webkitBlock = true;
|
||||
|
||||
var e = document.createEvent('MouseEvents');
|
||||
e.initMouseEvent ('mousedown',
|
||||
true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||
this.node.dispatchEvent(e);
|
||||
|
||||
this._webkitBlock = false;
|
||||
}
|
||||
});
|
||||
|
|
|
@ -22,7 +22,12 @@ Htk.ImageEditor = new Class
|
|||
|
||||
,onNameChange: function ()
|
||||
{
|
||||
this.signalEmit ('name-changed', this.$('name').value);
|
||||
var newValue = this.$('name').value;
|
||||
|
||||
if (!newValue)
|
||||
newValue = null
|
||||
|
||||
this.signalEmit ('name-changed', newValue);
|
||||
}
|
||||
|
||||
,onFormSubmit: function ()
|
||||
|
|
|
@ -259,6 +259,14 @@ td.cell-image img
|
|||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* Image */
|
||||
|
||||
.htk-image.editable:hover
|
||||
{
|
||||
cursor: pointer;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Full image */
|
||||
|
||||
.htk-full-image
|
||||
|
@ -299,7 +307,7 @@ td.cell-image img
|
|||
left: 50%;
|
||||
top: 4em;
|
||||
width: 21em;
|
||||
margin-left: -11em;
|
||||
margin-left: -10.5em;
|
||||
text-align: center;
|
||||
overflow: auto;
|
||||
max-height: 40em;
|
||||
|
@ -481,12 +489,16 @@ td.cell-image img
|
|||
background-color: white;
|
||||
height: 2.2em;
|
||||
}
|
||||
.htk-search-entry > *
|
||||
{
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.htk-search-entry > img
|
||||
{
|
||||
margin: 0;
|
||||
height: 1.5em;
|
||||
margin-left: .4em;
|
||||
vertical-align: middle;
|
||||
margin: 0 .4em;
|
||||
}
|
||||
.htk-search-entry > .entry
|
||||
{
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
Vn.include ('js/misc/tinymce/tinymce.min');
|
||||
Vn.include ('js/misc/mootools');
|
||||
|
||||
|
|
|
@ -31,12 +31,38 @@ Vn.HashParam = new Class
|
|||
{
|
||||
return this._key;
|
||||
}
|
||||
},
|
||||
value:
|
||||
{
|
||||
type: Object
|
||||
,set: function (x)
|
||||
{
|
||||
this._value = x;
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._value;
|
||||
}
|
||||
},
|
||||
type:
|
||||
{
|
||||
type: Object
|
||||
,set: function (x)
|
||||
{
|
||||
this._type = x;
|
||||
this._onHashChange ();
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._type;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
,lock: false
|
||||
,value: undefined
|
||||
,_lock: false
|
||||
,_value: undefined
|
||||
,_key: null
|
||||
,_type: null
|
||||
|
||||
,initialize: function (props)
|
||||
{
|
||||
|
@ -53,9 +79,20 @@ Vn.HashParam = new Class
|
|||
|
||||
var newValue = Vn.Hash.get (this._key);
|
||||
|
||||
if (this.value != newValue)
|
||||
if (this._type)
|
||||
switch (this._type)
|
||||
{
|
||||
this.value = newValue;
|
||||
case Boolean:
|
||||
newValue = (/^(true|1)$/i).test (newValue);
|
||||
break;
|
||||
case Number:
|
||||
newValue = 0 + new Number (newValue);
|
||||
break;
|
||||
}
|
||||
|
||||
if (this._value != newValue)
|
||||
{
|
||||
this._value = newValue;
|
||||
this.signalEmit ('changed');
|
||||
this._refreshParam ();
|
||||
}
|
||||
|
@ -63,25 +100,25 @@ Vn.HashParam = new Class
|
|||
|
||||
,_refreshParam: function ()
|
||||
{
|
||||
if (this._param && !this.lock)
|
||||
if (this._param && !this._lock)
|
||||
{
|
||||
this.lock = true;
|
||||
this._param.value = this.value;
|
||||
this.lock = false;
|
||||
this._lock = true;
|
||||
this._param.value = this._value;
|
||||
this._lock = false;
|
||||
}
|
||||
}
|
||||
|
||||
,_onParamChange: function ()
|
||||
{
|
||||
if (this.lock)
|
||||
if (this._lock)
|
||||
return;
|
||||
|
||||
var map = {};
|
||||
map[this.key] = this._param.value;
|
||||
|
||||
this.lock = true;
|
||||
this._lock = true;
|
||||
Vn.Hash.add (map);
|
||||
this.lock = false;
|
||||
this._lock = false;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -58,12 +58,16 @@ Vn.Hash =
|
|||
**/
|
||||
,set: function (map)
|
||||
{
|
||||
if (map)
|
||||
for (var key in map)
|
||||
if (map[key] === null || map[key] === undefined)
|
||||
delete map[key];
|
||||
|
||||
var newHash = this.make (map);
|
||||
|
||||
if (!map)
|
||||
map = {};
|
||||
|
||||
if (newHash !== this._hash)
|
||||
{
|
||||
this._hashMap = map;
|
||||
|
@ -88,7 +92,7 @@ Vn.Hash =
|
|||
{
|
||||
var hash = '#!';
|
||||
|
||||
if (add)
|
||||
if (add && map)
|
||||
for (var key in this._hashMap)
|
||||
if (!map[key])
|
||||
map[key] = this._hashMap[key];
|
||||
|
|
|
@ -102,11 +102,13 @@ var Vn =
|
|||
|
||||
var callbacks = includeData.callbacks;
|
||||
|
||||
if (callbacks)
|
||||
for (var i = 0; i < callbacks.length; i++)
|
||||
callbacks[i] (includeData.loaded);
|
||||
|
||||
var dependants = includeData.dependants;
|
||||
|
||||
if (dependants)
|
||||
for (var i = 0; i < dependants.length; i++)
|
||||
{
|
||||
var dependant = dependants[i];
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
,"BuyersAndTraders": "9 compradors especialitzats i els nostres 20 comercials t'assessoraran en tot el que necessitis."
|
||||
|
||||
,"Training": "Verdnatura formació"
|
||||
,"Verdnatura training": "Verdnatura formació"
|
||||
|
||||
,"GoodTraining": "En Verdnatura sabem que una bona formació és imprescindible per al desenvolupament òptim de qualsevol activitat, i com no, també la de florista."
|
||||
,"SpecialTrainingPrices": "Perquè el pressupost d'una escola no repercuteixi en la qualitat de la teva formació, col·laborem amb una política de preus especials per a totes aquelles escoles que ho sol·licitin realitzar cursos a les nostres instal·lacions de Verdnatura Silla."
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"Sent": "Enviat"
|
||||
"Start order": "Començar comanda"
|
||||
|
||||
,"Sent": "Enviat"
|
||||
,"Author": "Autor"
|
||||
,"votes": "vots"
|
||||
,"NoAnswerSelected": "No has seleccionat cap resposta"
|
||||
|
|
|
@ -7,15 +7,22 @@
|
|||
,"ArticleNotFound": "Artcle no trobat"
|
||||
,"ArticleNotAvailable": "Article no disponible"
|
||||
|
||||
,"StartOrder": "Començar encàrrec"
|
||||
,"Switch view": "Canviar vista"
|
||||
,"StartOrder": "Començar comanda"
|
||||
,"ShoppingBasket": "Cistella de la compra"
|
||||
|
||||
,"Realm": "Família"
|
||||
,"Subtype": "Subtipus"
|
||||
,"Date:": "Data:"
|
||||
,"Warehouse:": "Magatzem:"
|
||||
,"Search:": "Cercar:"
|
||||
,"GeneralSearch": "Cerca general"
|
||||
,"Search": "Cercar"
|
||||
,"Configure": "Configurar"
|
||||
,"Order by": "Ordenar"
|
||||
,"Available": "Displonible"
|
||||
,"Size": "Mesura"
|
||||
,"Realm": "Regne"
|
||||
,"Family": "Família"
|
||||
,"Color": "Color"
|
||||
,"Producer": "Productor"
|
||||
,"Origin": "Origen"
|
||||
,"Category": "Categoria"
|
||||
,"Remove filters": "Esborrar filtres"
|
||||
|
||||
,"Amount": "Quant"
|
||||
,"Aval": "Disp"
|
||||
|
@ -27,7 +34,9 @@
|
|||
,"Pack": "Pack"
|
||||
,"Origin": "Origen"
|
||||
,"Price": "Preu"
|
||||
,"%.0d Units": "%.0d Unitats"
|
||||
|
||||
,"from": "des de"
|
||||
,"from %.2d€": "des de %.2d€"
|
||||
,"AddToBasket": "Afegir article"
|
||||
,"Add": "Afegir"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
,"ShoppingBasket": "Cistella de la compra"
|
||||
|
||||
,"SeeOrder": "Mostrar detall de l'encàrrec"
|
||||
,"Delivery": "Lliurament"
|
||||
,"TicketNumber": "N ticket"
|
||||
,"SentAddress": "Adreça d'enviament"
|
||||
,"Consignee": "Consignatari"
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
{
|
||||
"OrderDetail": "Detall de l'encarrec"
|
||||
|
||||
,"%A, %e of %B %Y": "%A, %e de %B %Y"
|
||||
,"Print delivery note": "Imprimir albarà"
|
||||
|
||||
,"TicketNumber:": "N ticket:"
|
||||
,"DateExit:": "Data d'enviament:"
|
||||
,"SendMethod:": "Forma d'enviament:"
|
||||
,"Notes:": "Notes:"
|
||||
,"TicketTotal:": "Total encàrrec:"
|
||||
,"(VATIncluded)": "(IVA inclós)"
|
||||
|
||||
,"PC": "Codi postal"
|
||||
,"City": "Ciutat"
|
||||
,"Province": "Província"
|
||||
,"Address": "Domicili"
|
||||
,"Consignee": "Consignatari"
|
||||
,"Delivery": "Entrega"
|
||||
,"Total": "Total"
|
||||
,"Tax base": "Base imposable"
|
||||
,"VAT": "IVA"
|
||||
|
||||
,"ItemNumber": "N article"
|
||||
,"Amount": "Quant"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
,"BuyersAndTraders": "9 specialized trade buyers and our 20 advise you on everything you need."
|
||||
|
||||
,"Training": "Verdnatura training"
|
||||
,"Verdnatura training": "Verdnatura training"
|
||||
|
||||
,"GoodTraining": "In Verdnatura we know that a good education is essential for the optimal development of any activity, and of course, also the florist."
|
||||
,"SpecialTrainingPrices": "For the school budget does not affect the quality of your training, we work with special pricing policy for all schools that request it take courses in our facilities Verdnatura chair."
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"Sent": "Sent"
|
||||
"Start order": "Start order"
|
||||
|
||||
,"Sent": "Sent"
|
||||
,"Author": "Author"
|
||||
,"votes": "votes"
|
||||
,"NoAnswerSelected": "No answer selected"
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
,"ShoppingBasket": "Shopping basket"
|
||||
|
||||
,"Search": "Search"
|
||||
,"Order by": "Order by"
|
||||
,"Configure": "Configure"
|
||||
,"Order": "Order"
|
||||
,"Available": "Available"
|
||||
,"Size": "Size"
|
||||
,"Realm": "Realm"
|
||||
|
@ -33,7 +34,7 @@
|
|||
,"Pack": "Pack"
|
||||
,"Origin": "Origin"
|
||||
,"Price": "Price"
|
||||
,"%.0d Units": "%.0d Units "
|
||||
,"%.0d Units": "%.0d Units"
|
||||
|
||||
,"from": "from"
|
||||
,"from %.2d€": "from %.2d€"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
,"ShoppingBasket": "Shopping basket"
|
||||
|
||||
,"SeeOrder": "Show details of the order"
|
||||
,"Delivery": "Delivery"
|
||||
,"TicketNumber": "Ticket number"
|
||||
,"SentAddress": "Delivery address"
|
||||
,"Consignee": "Consignee"
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
{
|
||||
"OrderDetail": "Order detail"
|
||||
|
||||
,"%A, %e of %B %Y": "%A, %e of %B %Y"
|
||||
,"Print delivery note": "Print delivery note"
|
||||
|
||||
,"TicketNumber:": "Ticket number:"
|
||||
,"DateExit:": "Delivery date:"
|
||||
,"SendMethod:": "Delivery method:"
|
||||
,"Notes:": "Notes:"
|
||||
,"TicketTotal:": "Order total:"
|
||||
,"(VATIncluded)": "(VAT included)"
|
||||
|
||||
,"PC": "Postal code"
|
||||
,"City": "City"
|
||||
,"Province": "Province"
|
||||
,"Address": "Address"
|
||||
,"Consignee": "Consignee"
|
||||
,"Delivery": "Delivery"
|
||||
,"Total": "Total"
|
||||
,"Tax base": "Tax base"
|
||||
,"VAT": "VAT"
|
||||
|
||||
,"ItemNumber": "Item number"
|
||||
,"Amount": "Amount"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
,"BuyersAndTraders": "9 compradores especializados y nuestros 20 comerciales te asesorarán en todo lo que necesites."
|
||||
|
||||
,"Training": "Verdnatura formación"
|
||||
,"Verdnatura training": "Verdnatura formación"
|
||||
|
||||
,"GoodTraining": "En Verdnatura sabemos que una buena formación es imprescindible para el desarrollo óptimo de cualquier actividad, y cómo no, también la de florista."
|
||||
,"SpecialTrainingPrices": "Para que el presupuesto de una escuela no repercuta en la calidad de tu formación, colaboramos con una política de precios especiales para todas aquellas escuelas que lo soliciten realizar cursos en nuestras instalaciones de Verdnatura Silla."
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"Sent": "Enviado"
|
||||
"Start order": "Empezar pedido"
|
||||
|
||||
,"Sent": "Enviado"
|
||||
,"Author": "Autor"
|
||||
,"votes": "votos"
|
||||
,"NoAnswerSelected": "No has seleccionado ninguna respuesta"
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
,"ShoppingBasket": "Cesta de la compra"
|
||||
|
||||
,"Search": "Buscar"
|
||||
,"Configure": "Configurar"
|
||||
,"Order by": "Ordenar"
|
||||
,"Available": "Displonible"
|
||||
,"Size": "Medida"
|
||||
|
@ -20,7 +21,7 @@
|
|||
,"Color": "Color"
|
||||
,"Producer": "Productor"
|
||||
,"Origin": "Origen"
|
||||
,"Category": "Categoria"
|
||||
,"Category": "Categoría"
|
||||
,"Remove filters": "Quitar filtros"
|
||||
|
||||
,"Amount": "Cant"
|
||||
|
@ -33,7 +34,7 @@
|
|||
,"Pack": "Pack"
|
||||
,"Origin": "Origen"
|
||||
,"Price": "Precio"
|
||||
,"%.0d Units": "%.0d Unidades "
|
||||
,"%.0d Units": "%.0d Unidades"
|
||||
|
||||
,"from": "desde"
|
||||
,"from %.2d€": "desde %.2d€"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
,"ShoppingBasket": "Cesta de la compra"
|
||||
|
||||
,"SeeOrder": "Mostrar detalle del pedido"
|
||||
,"Delivery": "Entrega"
|
||||
,"TicketNumber": "Nº ticket"
|
||||
,"SentAddress": "Dirección de envío"
|
||||
,"Consignee": "Consignatario"
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
{
|
||||
"OrderDetail": "Detalle del pedido"
|
||||
|
||||
,"%A, %e of %B %Y": "%A, %e de %B %Y"
|
||||
,"Print delivery note": "Imprimir albarán"
|
||||
|
||||
,"TicketNumber:": "Nº ticket:"
|
||||
,"DateExit:": "Fecha de envío:"
|
||||
,"SendMethod:": "Forma de envío:"
|
||||
,"Notes:": "Notas:"
|
||||
,"TicketTotal:": "Total pedido:"
|
||||
,"(VATIncluded)": "(IVA incluído)"
|
||||
|
||||
,"PC": "Código postal"
|
||||
,"City": "Ciudad"
|
||||
,"Province": "Provincia"
|
||||
,"Address": "Domicilio"
|
||||
,"Consignee": "Consignatario"
|
||||
,"Delivery": "Entrega"
|
||||
,"Total": "Total"
|
||||
,"Tax base": "Base imponible"
|
||||
,"VAT": "IVA"
|
||||
|
||||
,"ItemNumber": "Nº artículo"
|
||||
,"Amount": "Cant"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
,"BuyersAndTraders": "9 acheteurs commerciaux spécialisés et notre 20 conseillera dans tout ce que vous avez besoin."
|
||||
|
||||
,"Training": "Formation Verdnatura"
|
||||
,"Verdnatura training": "Formation Verdnatura"
|
||||
|
||||
,"GoodTraining": "Dans Verdnatura sait qu'une bonne éducation est essentielle pour le développement optimal de toute activité, et bien sûr, aussi le fleuriste."
|
||||
,"SpecialTrainingPrices": "Pour le budget d'une école n'a aucun effet sur la qualité de votre formation, travailler avec la politique de tarification spéciale pour toutes les écoles qui le demandent de suivre des cours dans nos installations chaise Verdnatura."
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"Sent": "Envoyé"
|
||||
"Start order": "Lancer commande"
|
||||
|
||||
,"Sent": "Envoyé"
|
||||
,"Author": "Auteur"
|
||||
,"votes": "votes"
|
||||
,"NoAnswerSelected": "Vous avez pas sélectionné de réponse"
|
||||
|
|
|
@ -7,15 +7,22 @@
|
|||
,"ArticleNotFound": "Article non trouvé"
|
||||
,"ArticleNotAvailable": "Article non disponible"
|
||||
|
||||
,"Switch view": "Changer vue"
|
||||
,"StartOrder": "Acheter"
|
||||
,"ShoppingBasket": "Mon panier"
|
||||
|
||||
,"Search": "Recherche"
|
||||
,"Configure": "Régler"
|
||||
,"Order by": "Ordre"
|
||||
,"Available": "Displonible"
|
||||
,"Size": "Mesure"
|
||||
,"Realm": "Famille"
|
||||
,"Subtype": "Sous-genre"
|
||||
,"Date:": "Date:"
|
||||
,"Warehouse:": "Magasin:"
|
||||
,"Search:": "Recherche:"
|
||||
,"GeneralSearch": "Recherche générale"
|
||||
,"Family": "Sous-genre"
|
||||
,"Color": "Couleur"
|
||||
,"Producer": "Producteur"
|
||||
,"Origin": "Origine"
|
||||
,"Category": "Catégorie"
|
||||
,"Remove filters": "Retirer les filtres"
|
||||
|
||||
,"Amount": "Quant"
|
||||
,"Aval": "Disp"
|
||||
|
@ -27,7 +34,9 @@
|
|||
,"Pack": "Pack"
|
||||
,"Origin": "Origine"
|
||||
,"Price": "Prix"
|
||||
,"%.0d Units": "%.0d Unités"
|
||||
|
||||
,"from": "pour"
|
||||
,"from %.2d€": "pour %.2d€"
|
||||
,"AddToBasket": "Ajouter article"
|
||||
,"Add": "Ajouter"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
,"ShoppingBasket": "Panier"
|
||||
|
||||
,"SeeOrder": "Votre panier"
|
||||
,"Delivery": "Accouchement"
|
||||
,"TicketNumber": "Numéro ticket"
|
||||
,"SentAddress": "Adresse de livraison"
|
||||
,"Consignee": "Destinataire"
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
{
|
||||
"OrderDetail": "Détails de la commande"
|
||||
|
||||
,"%A, %e of %B %Y": "%A, %e de %B %Y"
|
||||
,"Print delivery note": "Imprimer bulletin de livraison"
|
||||
|
||||
,"TicketNumber:": "Num ticket:"
|
||||
,"DateExit:": "Date d'envoi:"
|
||||
,"SendMethod:": "Mode d'envoi:"
|
||||
,"Notes:": "Notes:"
|
||||
,"TicketTotal:": "Total:"
|
||||
,"(VATIncluded)": "(TVA comprise)"
|
||||
|
||||
,"PC": "Code postal"
|
||||
,"City": "Ville"
|
||||
,"Province": "Province"
|
||||
,"Address": "Maison"
|
||||
,"Consignee": "Destinataire"
|
||||
,"Delivery": "Accouchement"
|
||||
,"Total": "Total"
|
||||
,"Tax base": "Imposable"
|
||||
,"VAT": "TVA"
|
||||
|
||||
,"ItemNumber": "Num article"
|
||||
,"Amount": "Quant"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
,"BuyersAndTraders": "9 specialized trade buyers and our 20 advise you on everything you need."
|
||||
|
||||
,"Training": "Verdnatura training"
|
||||
,"Verdnatura training": "Verdnatura training"
|
||||
|
||||
,"GoodTraining": "In Verdnatura we know that a good education is essential for the optimal development of any activity, and of course, also the florist."
|
||||
,"SpecialTrainingPrices": "For the school budget does not affect the quality of your training, we work with special pricing policy for all schools that request it take courses in our facilities Verdnatura chair."
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"Sent": "Sent"
|
||||
"Start order": "Захиалга эхлэх"
|
||||
|
||||
,"Sent": "Sent"
|
||||
,"Author": "Author"
|
||||
,"votes": "votes"
|
||||
,"NoAnswerSelected": "No answer selected"
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
,"ShoppingBasket": "Shopping basket"
|
||||
|
||||
,"Search": "Search"
|
||||
,"Order by": "Order by"
|
||||
,"Configure": "Configure"
|
||||
,"Order": "Order"
|
||||
,"Available": "Available"
|
||||
,"Size": "Size"
|
||||
,"Realm": "Realm"
|
||||
|
@ -33,7 +34,7 @@
|
|||
,"Pack": "Pack"
|
||||
,"Origin": "Origin"
|
||||
,"Price": "Price"
|
||||
,"%.0d Units": "%.0d Units "
|
||||
,"%.0d Units": "%.0d Units"
|
||||
|
||||
,"from": "from"
|
||||
,"from %.2d€": "from %.2d€"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
,"ShoppingBasket": "Shopping basket"
|
||||
|
||||
,"SeeOrder": "Show details of the order"
|
||||
,"Delivery": "Delivery"
|
||||
,"TicketNumber": "Ticket number"
|
||||
,"SentAddress": "Delivery address"
|
||||
,"Consignee": "Consignee"
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
{
|
||||
"OrderDetail": "Order detail"
|
||||
|
||||
,"%A, %e of %B %Y": "%A, %e of %B %Y"
|
||||
,"Print delivery note": "Print delivery note"
|
||||
|
||||
,"TicketNumber:": "Ticket number:"
|
||||
,"DateExit:": "Delivery date:"
|
||||
,"SendMethod:": "Delivery method:"
|
||||
,"Notes:": "Notes:"
|
||||
,"TicketTotal:": "Order total:"
|
||||
,"(VATIncluded)": "(VAT included)"
|
||||
|
||||
,"PC": "Postal code"
|
||||
,"City": "City"
|
||||
,"Province": "Province"
|
||||
,"Address": "Address"
|
||||
,"Consignee": "Consignee"
|
||||
,"Delivery": "Delivery"
|
||||
,"Total": "Total"
|
||||
,"Tax base": "Tax base"
|
||||
,"VAT": "VAT"
|
||||
|
||||
,"ItemNumber": "Item number"
|
||||
,"Amount": "Amount"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
,"BuyersAndTraders": "9 compradores especializados e nossos 20 comerciais te asessorarão em tudo o que necessites."
|
||||
|
||||
,"Training": "Verdnatura formação"
|
||||
,"Verdnatura training": "Verdnatura formação"
|
||||
|
||||
,"GoodTraining": "Em Verdnatura sabemos que uma boa formação é imprescindível para o desenvolvimento ótimo de qualqer atividade, e como não, também a de florista."
|
||||
,"SpecialTrainingPrices": "Para que o orçamento de uma escola não repercuta na qualidade da sua formação, colaboramos com uma política de preços especiais para todas aquelas escolas que solicitem realizar cursos em nossas instalações de Verdnatura Silla."
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"Sent": "Enviado"
|
||||
"Start order": "Comece uma ordem"
|
||||
|
||||
,"Sent": "Enviado"
|
||||
,"Author": "Autor"
|
||||
,"votes": "votos"
|
||||
,"NoAnswerSelected": "Não seleccionou nenhuma resposta"
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
,"ShoppingBasket": "Cesta da compra"
|
||||
|
||||
,"Search": "Buscar"
|
||||
,"Configure": "Configurar"
|
||||
,"Order by": "Organizar"
|
||||
,"Available": "Disponível"
|
||||
,"Size": "Medida"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
,"ShoppingBasket": "Cesta da compra"
|
||||
|
||||
,"SeeOrder": "Mostrar detalhe do pedido"
|
||||
,"Delivery": "Entrega"
|
||||
,"TicketNumber": "Nº ticket"
|
||||
,"SentAddress": "Endereço de envío"
|
||||
,"Consignee": "Consignatario"
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
{
|
||||
"OrderDetail": "Detalhe do pedido"
|
||||
|
||||
,"%A, %e of %B %Y": "%A, %e de %B %Y"
|
||||
,"Print delivery note": "Imprimir guía de remessa"
|
||||
|
||||
,"TicketNumber:": "Nº ticket:"
|
||||
,"DateExit:": "Data de envío:"
|
||||
,"SendMethod:": "Forma de envío:"
|
||||
,"Notes:": "Notas:"
|
||||
,"TicketTotal:": "Total pedido:"
|
||||
,"(VATIncluded)": "(IVA incluído)"
|
||||
|
||||
,"PC": "Código postal"
|
||||
,"City": "Município"
|
||||
,"Province": "Distrito"
|
||||
,"Address": "Endereço"
|
||||
,"Consignee": "Consignatario"
|
||||
,"Delivery": "Entrega"
|
||||
,"Total": "Total"
|
||||
,"Tax base": "Tributável"
|
||||
,"VAT": "IVA"
|
||||
|
||||
,"ItemNumber": "Nº artículo"
|
||||
,"Amount": "Qtde"
|
||||
|
|