forked from verdnatura/hedera-web
Traducciones actualizadas, más funcionalidad para informes, archivos obsoletos eliminados del proyecto
This commit is contained in:
parent
0cf90bb53e
commit
4b015714c0
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.AddressList = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Address = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Conf = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,19 +1,23 @@
|
|||
<vn>
|
||||
<vn-group>
|
||||
<db-form id="user-form">
|
||||
<db-model id="user-model" updatable="true">
|
||||
SELECT id, u.name, email, mail, c.user_id, c.default_address
|
||||
FROM user_view u
|
||||
LEFT JOIN customer_view c
|
||||
ON u.id = c.user_id
|
||||
<db-model property="model" id="user-model" updatable="true">
|
||||
<custom>
|
||||
SELECT id, u.name, email, mail, c.user_id, c.default_address
|
||||
FROM user_view u
|
||||
LEFT JOIN customer_view c
|
||||
ON u.id = c.user_id
|
||||
</custom>
|
||||
</db-model>
|
||||
</db-form>
|
||||
<db-model id="addresses" updatable="true">
|
||||
SELECT a.id, a.consignee, p.name province, a.zip_code, a.city, a.name, a.active, c.Pais country
|
||||
FROM address_view a
|
||||
LEFT JOIN vn2008.province p ON a.province_id = p.province_id
|
||||
JOIN vn2008.Paises c ON c.Id = p.Paises_Id
|
||||
WHERE active != FALSE
|
||||
<custom>
|
||||
SELECT a.id, a.consignee, p.name province, a.zip_code, a.city, a.name, a.active, c.Pais country
|
||||
FROM address_view a
|
||||
LEFT JOIN vn2008.province p ON a.province_id = p.province_id
|
||||
JOIN vn2008.Paises c ON c.Id = p.Paises_Id
|
||||
WHERE active != FALSE
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-group>
|
||||
<div id="title">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Vn.AccessLog = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
});
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
Vn.Items = new Class
|
||||
({
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
this.$('warehouse').value = 7;
|
||||
this.$('realm').value = null;
|
||||
}
|
||||
|
||||
,onPreviewClick: function ()
|
||||
{
|
||||
var batch = new Sql.Batch ();
|
||||
batch.addValues ({
|
||||
'warehouse': this.$('warehouse').value
|
||||
,'realm': this.$('realm').value
|
||||
,'rate': this.$('rate').value
|
||||
});
|
||||
this.gui.openReport ('items-report', batch);
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
.items
|
||||
{
|
||||
padding: 1em;
|
||||
}
|
||||
.items .box
|
||||
{
|
||||
max-width: 40em;
|
||||
padding: 2em;
|
||||
}
|
||||
.items .body
|
||||
{
|
||||
max-width: 20em;
|
||||
margin: auto;
|
||||
padding: 0;
|
||||
}
|
||||
.items .form-group
|
||||
{
|
||||
padding: 0.4em;
|
||||
}
|
||||
.items form label
|
||||
{
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.items input[type=text],
|
||||
.items select
|
||||
{
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
|
||||
.items .footer
|
||||
{
|
||||
text-align: center;
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
.items .footer > button
|
||||
{
|
||||
margin: 0 .2em;
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<vn>
|
||||
<div id="title">
|
||||
<h1><t>Item list</t></h1>
|
||||
</div>
|
||||
<div id="form" class="items">
|
||||
<div class="box">
|
||||
<div class="body">
|
||||
<div class="form-group">
|
||||
<label><t>Store</t></label>
|
||||
<htk-combo>
|
||||
<vn-param property="param" id="warehouse"/>
|
||||
<db-model property="model">
|
||||
<custom>
|
||||
SELECT id, name FROM vn2008.warehouse
|
||||
WHERE reserve ORDER BY name
|
||||
</custom>
|
||||
</db-model>
|
||||
</htk-combo>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label><t>Realm</t></label>
|
||||
<htk-combo not-null="false">
|
||||
<vn-param property="param" id="realm"/>
|
||||
<db-model property="model">
|
||||
<custom>
|
||||
SELECT id, reino FROM vn2008.reinos
|
||||
WHERE display != FALSE ORDER BY reino
|
||||
</custom>
|
||||
</db-model>
|
||||
</htk-combo>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label><t>Rate</t></label>
|
||||
<select id="rate">
|
||||
<option>3</option>
|
||||
<option>2</option>
|
||||
<option>1</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<button class="thin" on-click="onPreviewClick">
|
||||
<t>Preview</t>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</vn>
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Links = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
<div id="form" class="cpanel">
|
||||
<div class="box">
|
||||
<htk-grid show-header="false">
|
||||
<db-model>
|
||||
SELECT image, name, description, link FROM link
|
||||
ORDER BY name
|
||||
<db-model property="model">
|
||||
<custom>
|
||||
SELECT image, name, description, link FROM link
|
||||
ORDER BY name
|
||||
</custom>
|
||||
</db-model>
|
||||
<htk-column-image directory="link" subdir="full" column="image"/>
|
||||
<htk-column-link column="name" target="\_blank" id="column-link"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Photos = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Shelves = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<vn>
|
||||
<vn-group>
|
||||
<db-model property="model" id="configs-model">
|
||||
SELECT c.id, c.name, c.name_prefix, c.warehouse_id, c.family_id,
|
||||
c.shelf_id, c.max_amount, c.show_packing, c.stack, t.reino_id
|
||||
FROM shelf_config c
|
||||
JOIN vn2008.Tipos t ON t.tipo_id = c.family_id
|
||||
<custom>
|
||||
SELECT c.id, c.name, c.name_prefix, c.warehouse_id, c.family_id,
|
||||
c.shelf_id, c.max_amount, c.show_packing, c.stack, t.reino_id
|
||||
FROM shelf_config c
|
||||
JOIN vn2008.Tipos t ON t.tipo_id = c.family_id
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-group>
|
||||
<div id="title">
|
||||
|
@ -30,8 +32,10 @@
|
|||
<label><t>Reign</t></label>
|
||||
<htk-combo id="reign">
|
||||
<db-model property="model" id="reigns">
|
||||
SELECT id, reino FROM vn2008.reinos
|
||||
WHERE display != FALSE ORDER BY reino
|
||||
<custom>
|
||||
SELECT id, reino FROM vn2008.reinos
|
||||
WHERE display != FALSE ORDER BY reino
|
||||
</custom>
|
||||
</db-model>
|
||||
</htk-combo>
|
||||
</div>
|
||||
|
@ -39,10 +43,14 @@
|
|||
<label><t>Family</t></label>
|
||||
<htk-combo id="family">
|
||||
<db-model property="model">
|
||||
SELECT tipo_id, Tipo FROM vn2008.Tipos
|
||||
WHERE reino_id = #reign ORDER BY Tipo
|
||||
<custom>
|
||||
SELECT tipo_id, Tipo FROM vn2008.Tipos
|
||||
WHERE reino_id = #reign ORDER BY Tipo
|
||||
</custom>
|
||||
<sql-batch property="batch">
|
||||
<item name="reign" param="reign"/>
|
||||
<custom>
|
||||
<item name="reign" param="reign"/>
|
||||
</custom>
|
||||
</sql-batch>
|
||||
</db-model>
|
||||
</htk-combo>
|
||||
|
@ -51,8 +59,10 @@
|
|||
<label><t>Store</t></label>
|
||||
<htk-combo id="warehouse">
|
||||
<db-model property="model" id="warehouses">
|
||||
SELECT id, name FROM vn2008.warehouse
|
||||
WHERE reserve ORDER BY name
|
||||
<custom>
|
||||
SELECT id, name FROM vn2008.warehouse
|
||||
WHERE reserve ORDER BY name
|
||||
</custom>
|
||||
</db-model>
|
||||
</htk-combo>
|
||||
</div>
|
||||
|
@ -60,7 +70,9 @@
|
|||
<label><t>Shelf</t></label>
|
||||
<htk-combo id="shelf">
|
||||
<db-model property="model" id="shelves">
|
||||
SELECT id, name FROM shelf
|
||||
<custom>
|
||||
SELECT id, name FROM shelf
|
||||
</custom>
|
||||
</db-model>
|
||||
</htk-combo>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Users = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,onChangeUserClick: function (column, value)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Visits = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Packages = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,onShowClick: function (column, agencyId)
|
||||
{
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
<div class="box">
|
||||
<htk-grid>
|
||||
<db-model property="model">
|
||||
CALL vn2008.agencia_volume ()
|
||||
<custom>
|
||||
CALL vn2008.agencia_volume ()
|
||||
</custom>
|
||||
</db-model>
|
||||
<htk-column-button
|
||||
column="agency_id"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Vn.Provinces = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
});
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<vn>
|
||||
<vn-group>
|
||||
<vn-hash-param key="agency">
|
||||
<vn-param id="agency"/>
|
||||
</vn-hash-param>
|
||||
<vn-param id="agency"/>
|
||||
<vn-hash-param key="agency" param="agency"/>
|
||||
</vn-group>
|
||||
<div id="title">
|
||||
<h1><t>ByProvince</t></h1>
|
||||
|
@ -10,10 +9,14 @@
|
|||
<div id="form" class="provinces">
|
||||
<div class="box">
|
||||
<htk-grid>
|
||||
<db-model>
|
||||
CALL vn2008.desglose_volume (#agency)
|
||||
<db-model property="model">
|
||||
<custom>
|
||||
CALL vn2008.desglose_volume (#agency)
|
||||
</custom>
|
||||
<sql-batch property="batch">
|
||||
<item name="agency" param="agency"/>
|
||||
<custom>
|
||||
<item name="agency" param="agency"/>
|
||||
</custom>
|
||||
</sql-batch>
|
||||
</db-model>
|
||||
<htk-column-text title="_Province" column="Provincia"/>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Vn.About = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
});
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Contact = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Vn.Home = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
});
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ var gmapsIsLoaded = false;
|
|||
|
||||
Vn.Location = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,locations: null
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
Vn.Training = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
});
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
Vn.Why = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
});
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Basket = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,open: function ()
|
||||
{
|
||||
|
|
|
@ -23,12 +23,14 @@
|
|||
<div class="box">
|
||||
<div>
|
||||
<htk-grid show-header="false">
|
||||
<db-model id="items" updatable="true">
|
||||
SELECT i.id, i.amount, i.price, a.Article, a.Categoria,
|
||||
a.Medida, a.Tallos, a.Color, o.Abreviatura, a.Foto
|
||||
FROM basket_item i
|
||||
JOIN vn2008.Articles a ON a.Id_Article = i.item_id
|
||||
LEFT JOIN vn2008.Origen o ON a.id_origen = o.id;
|
||||
<db-model id="items" property="model" updatable="true">
|
||||
<custom>
|
||||
SELECT i.id, i.amount, i.price, a.Article, a.Categoria,
|
||||
a.Medida, a.Tallos, a.Color, o.Abreviatura, a.Foto
|
||||
FROM basket_item i
|
||||
JOIN vn2008.Articles a ON a.Id_Article = i.item_id
|
||||
LEFT JOIN vn2008.Origen o ON a.id_origen = o.id
|
||||
</custom>
|
||||
</db-model>
|
||||
<htk-column-image
|
||||
column="Foto"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Catalog = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,_menuShown: false
|
||||
|
||||
|
@ -161,7 +161,7 @@ Vn.Catalog = new Class
|
|||
var searchTags = this.$('search-entry').value;
|
||||
searchTags = searchTags != '' ? searchTags : undefined;
|
||||
|
||||
var batch = this.$('batch');
|
||||
var batch = this.$('filter-batch');
|
||||
batch.block ();
|
||||
|
||||
this.$('search').value = searchTags;
|
||||
|
@ -214,11 +214,6 @@ Vn.Catalog = new Class
|
|||
{
|
||||
renderer.subtitle = form.get ('producer');
|
||||
}
|
||||
|
||||
,featuresRender: function (renderer, form)
|
||||
{
|
||||
renderer.value = form.get ('Medida') +' '+ form.get ('Categoria') +' '+ form.get ('Color');
|
||||
}
|
||||
|
||||
,amountRender: function (renderer, form)
|
||||
{
|
||||
|
@ -347,6 +342,31 @@ Vn.Catalog = new Class
|
|||
if (this.popup)
|
||||
this.popup.reset ();
|
||||
}
|
||||
|
||||
,onOrderChange: function (e)
|
||||
{
|
||||
var sortField = e.target.value;
|
||||
|
||||
if (sortField)
|
||||
this.$('items-model').sortByName (sortField);
|
||||
}
|
||||
|
||||
,onRemoveFiltersClick: function ()
|
||||
{
|
||||
var batch = this.$('filter-batch');
|
||||
batch.block ();
|
||||
|
||||
this.$('search').value = undefined;
|
||||
this.$('realm').value = undefined;
|
||||
this.$('type').value = undefined;
|
||||
this.$('color').value = undefined;
|
||||
this.$('origin').value = undefined;
|
||||
this.$('category').value = undefined;
|
||||
this.$('producer').value = undefined;
|
||||
|
||||
batch.unblock ();
|
||||
batch.changed ();
|
||||
}
|
||||
});
|
||||
|
||||
Vn.Filter = new Class
|
||||
|
@ -361,6 +381,7 @@ Vn.Filter = new Class
|
|||
type: Db.Model
|
||||
,set: function (x)
|
||||
{
|
||||
x.batch = this._batch;
|
||||
this._select.model = x;
|
||||
this._model = x;
|
||||
}
|
||||
|
@ -394,6 +415,31 @@ Vn.Filter = new Class
|
|||
return this._column;
|
||||
}
|
||||
},
|
||||
filter:
|
||||
{
|
||||
type: Sql.Filter
|
||||
,set: function (x)
|
||||
{
|
||||
this._filter = x;
|
||||
this._batch.addObject ('filter', x);
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._filter;
|
||||
}
|
||||
},
|
||||
disableOperation:
|
||||
{
|
||||
type: Sql.FilterItem
|
||||
,set: function (x)
|
||||
{
|
||||
this._disableFilter = x;
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._disableFilter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
,_columnIndex: 1
|
||||
|
@ -410,20 +456,29 @@ Vn.Filter = new Class
|
|||
|
||||
this._ul = document.createElement ('ul');
|
||||
this.node.appendChild (this._ul);
|
||||
|
||||
|
||||
this._batch = new Sql.Batch ();
|
||||
this.parent (props);
|
||||
}
|
||||
|
||||
,_onClick: function ()
|
||||
{
|
||||
if (this._model && this._model.status === Db.Model.Status.CLEAN)
|
||||
this._model.refresh ();
|
||||
{
|
||||
this._filter.alwaysReady = true;
|
||||
this._disableFilter.disabled = true;
|
||||
|
||||
this._model.refresh ();
|
||||
|
||||
this._disableFilter.disabled = false;
|
||||
this._filter.alwaysReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
,_onCloseClick: function (li)
|
||||
{
|
||||
Vn.Node.remove (li);
|
||||
this.value = undefined;
|
||||
this._changeValue (undefined);
|
||||
}
|
||||
|
||||
,_onChange: function ()
|
||||
|
@ -431,8 +486,11 @@ Vn.Filter = new Class
|
|||
if (this._select.value === null
|
||||
|| this._select.value === undefined)
|
||||
return;
|
||||
|
||||
var li = document.createElement ('li');
|
||||
|
||||
if (this._lastLi)
|
||||
Vn.Node.remove (this._lastLi);
|
||||
|
||||
var li = this._lastLi = document.createElement ('li');
|
||||
this._ul.appendChild (li);
|
||||
|
||||
var button = document.createElement ('button');
|
||||
|
@ -450,7 +508,14 @@ Vn.Filter = new Class
|
|||
|
||||
setTimeout (this._onTimeout.bind (this));
|
||||
|
||||
this.value = this._select.value;
|
||||
this._changeValue (this._select.value);
|
||||
}
|
||||
|
||||
,_changeValue: function (newValue)
|
||||
{
|
||||
this._batch.block ();
|
||||
this.value = newValue;
|
||||
this._batch.unblock ();
|
||||
}
|
||||
|
||||
,_onTimeout: function ()
|
||||
|
|
|
@ -99,6 +99,10 @@ option.placeholder
|
|||
.vn-filter li
|
||||
{
|
||||
line-height: 2em;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
max-width: 85%;
|
||||
}
|
||||
.vn-filter li > button
|
||||
{
|
||||
|
@ -107,6 +111,10 @@ option.placeholder
|
|||
padding: .2em;
|
||||
margin-right: .2em;
|
||||
}
|
||||
.right-panel .remove-filters
|
||||
{
|
||||
margin-top: 1.2em;
|
||||
}
|
||||
|
||||
button.basket
|
||||
{
|
||||
|
@ -287,6 +295,11 @@ td.third-category
|
|||
padding: 0;
|
||||
font-size: .9em;
|
||||
}
|
||||
.item-box > .producer
|
||||
{
|
||||
text-transform: uppercase;
|
||||
font-size: 1em;
|
||||
}
|
||||
.item-box > h2
|
||||
{
|
||||
font-size: 1.1em;
|
||||
|
|
|
@ -1,34 +1,4 @@
|
|||
<vn>
|
||||
<vn-group>
|
||||
<sql-filter-item type="LIKE" id="op-name">
|
||||
<sql-field name="Article"/>
|
||||
<sql-search-tags param="search"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-realm">
|
||||
<sql-field name="reino_id" target="t"/>
|
||||
<sql-value param="realm"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-type">
|
||||
<sql-field name="tipo_id"/>
|
||||
<sql-value param="type"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-color">
|
||||
<sql-field name="Color"/>
|
||||
<sql-value param="color"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-origin">
|
||||
<sql-field name="id_origen"/>
|
||||
<sql-value param="origin"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-category">
|
||||
<sql-field name="Categoria"/>
|
||||
<sql-value param="category"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-producer">
|
||||
<sql-field name="producer_id"/>
|
||||
<sql-value param="producer"/>
|
||||
</sql-filter-item>
|
||||
</vn-group>
|
||||
<vn-group>
|
||||
<vn-param id="search"/>
|
||||
<vn-param id="realm" on-changed="onTypeChange"/>
|
||||
|
@ -38,18 +8,46 @@
|
|||
<vn-param id="category"/>
|
||||
<vn-param id="producer"/>
|
||||
</vn-group>
|
||||
<vn-group>
|
||||
<sql-filter type="AND" id="filter">
|
||||
<sql-filter-item type="LIKE" id="op-name">
|
||||
<sql-field name="Article"/>
|
||||
<sql-search-tags param="search"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-realm">
|
||||
<sql-field name="reino_id" target="t"/>
|
||||
<sql-value param="realm"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-type">
|
||||
<sql-field name="tipo_id"/>
|
||||
<sql-value param="type"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-color">
|
||||
<sql-field name="Color"/>
|
||||
<sql-value param="color"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-origin">
|
||||
<sql-field name="id_origen"/>
|
||||
<sql-value param="origin"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-category">
|
||||
<sql-field name="Categoria"/>
|
||||
<sql-value param="category"/>
|
||||
</sql-filter-item>
|
||||
<sql-filter-item type="EQUAL" id="op-producer">
|
||||
<sql-field name="producer_id"/>
|
||||
<sql-value param="producer"/>
|
||||
</sql-filter-item>
|
||||
</sql-filter>
|
||||
<sql-batch property="batch" id="filter-batch">
|
||||
<custom>
|
||||
<item name="filter" object="filter"/>
|
||||
</custom>
|
||||
</sql-batch>
|
||||
</vn-group>
|
||||
<vn-group>
|
||||
<vn-hash-param key="realm" param="realm"/>
|
||||
<vn-hash-param key="type" param="type"/>
|
||||
<sql-filter type="AND" id="filter">
|
||||
<pointer object="op-name"/>
|
||||
<pointer object="op-realm"/>
|
||||
<pointer object="op-type"/>
|
||||
<pointer object="op-color"/>
|
||||
<pointer object="op-origin"/>
|
||||
<pointer object="op-category"/>
|
||||
<pointer object="op-producer"/>
|
||||
</sql-filter>
|
||||
<db-query id="basket-lines">
|
||||
<custom>
|
||||
SELECT item_id, warehouse_id, SUM(amount) amount
|
||||
|
@ -57,7 +55,7 @@
|
|||
GROUP BY warehouse_id
|
||||
</custom>
|
||||
</db-query>
|
||||
<db-model result-index="2" id="items-model">
|
||||
<db-model result-index="2" id="items-model" batch="filter-batch">
|
||||
<custom>
|
||||
CREATE TEMPORARY TABLE tmp.bionic_calc
|
||||
(INDEX (item_id))
|
||||
|
@ -65,29 +63,26 @@
|
|||
SELECT Id_Article item_id FROM vn2008.Articles
|
||||
WHERE #filter;
|
||||
CALL bionic_calc ();
|
||||
SELECT a.Id_Article item_id, t.available, t.price, p.name producer,
|
||||
a.Foto, a.Article, a.Categoria, a.Medida, a.Tallos, a.Color, o.Abreviatura
|
||||
SELECT a.Id_Article item_id, a.description, t.available, t.price,
|
||||
p.name producer, a.Foto, a.Article, a.Categoria, a.Medida,
|
||||
a.Tallos, i.name color, o.Abreviatura, o.Origen
|
||||
FROM tmp.bionic_item t
|
||||
JOIN vn2008.Articles a ON a.Id_Article = t.item_id
|
||||
LEFT JOIN vn2008.producer p ON p.producer_id = a.producer_id
|
||||
LEFT JOIN vn2008.Tintas i ON i.Id_Tinta = a.Color
|
||||
LEFT JOIN vn2008.Origen o ON a.id_origen = o.id
|
||||
WHERE t.available > 0
|
||||
ORDER BY a.Article, a.Medida
|
||||
LIMIT 400;
|
||||
</custom>
|
||||
<sql-batch property="batch" id="batch">
|
||||
<custom>
|
||||
<item name="filter" object="filter"/>
|
||||
</custom>
|
||||
</sql-batch>
|
||||
</db-model>
|
||||
<db-model id="item-lots" result-index="1" on-status-changed-after="onStatusChange">
|
||||
<custom>
|
||||
CALL bionic_from_item (#item);
|
||||
SELECT p.warehouse_id, p.grouping, p.price, p.rate, l.available
|
||||
SELECT p.warehouse_id, w.name warehouse, p.grouping, p.price, p.rate, l.available
|
||||
FROM tmp.bionic_lot l
|
||||
JOIN tmp.bionic_price p
|
||||
ON p.warehouse_id = l.warehouse_id
|
||||
JOIN tmp.bionic_price p ON p.warehouse_id = l.warehouse_id
|
||||
JOIN vn2008.warehouse w ON w.id = p.warehouse_id
|
||||
ORDER BY warehouse_id, grouping;
|
||||
</custom>
|
||||
<sql-batch property="batch" id="lots-batch"/>
|
||||
|
@ -137,9 +132,12 @@
|
|||
title="_Name"
|
||||
column="Article"
|
||||
renderer="nameRenderer"/>
|
||||
<htk-column-text
|
||||
title="_Siz"
|
||||
column="Medida"/>
|
||||
<htk-column-text
|
||||
title="_Cat"
|
||||
renderer="featuresRender"/>
|
||||
column="Categoria"/>
|
||||
<htk-column-spin
|
||||
title="_Aval"
|
||||
column="available"/>
|
||||
|
@ -174,15 +172,17 @@
|
|||
<h2>
|
||||
<htk-text form="item" column="Article"/>
|
||||
</h2>
|
||||
<p>
|
||||
<p class="producer">
|
||||
<htk-text form="item" column="producer"/>
|
||||
</p>
|
||||
<p>
|
||||
<htk-text form="item" column="Medida"/>
|
||||
<htk-text form="item" column="Categoria"/>
|
||||
<htk-text form="item" column="Color"/>
|
||||
<htk-text form="item" column="Tallos"/>
|
||||
<htk-text form="item" column="Abreviatura"/>
|
||||
<htk-text form="item" column="color"/>
|
||||
</p>
|
||||
<p>
|
||||
<htk-text form="item" column="Origen"/>
|
||||
<htk-text form="item" column="Tallos" format="%.0d Units"/>
|
||||
</p>
|
||||
<div class="aval-price">
|
||||
<htk-text form="item" column="available"/>
|
||||
|
@ -204,12 +204,12 @@
|
|||
</htk-repeater>
|
||||
<div id="right-panel" class="right-panel" on-click="onRightPanelClick">
|
||||
<div class="body">
|
||||
<select>
|
||||
<select on-change="onOrderChange">
|
||||
<option value="" disabled="true" selected="true">
|
||||
<t>Order by</t>
|
||||
</option>
|
||||
<option value="Article">
|
||||
<t>Item</t>
|
||||
<t>Name</t>
|
||||
</option>
|
||||
<option value="price">
|
||||
<t>Price</t>
|
||||
|
@ -217,23 +217,25 @@
|
|||
<option value="available">
|
||||
<t>Available</t>
|
||||
</option>
|
||||
<option value="Color">
|
||||
<option value="Medida">
|
||||
<t>Size</t>
|
||||
</option>
|
||||
<option value="color">
|
||||
<t>Color</t>
|
||||
</option>
|
||||
<option value="producer">
|
||||
<t>Producer</t>
|
||||
</option>
|
||||
<option value="Medida">
|
||||
<t>Size</t>
|
||||
<option value="Abreviatura">
|
||||
<t>Origin</t>
|
||||
</option>
|
||||
<option value="Categoria">
|
||||
<t>Category</t>
|
||||
</option>
|
||||
<option value="Abreviatura">
|
||||
<t>Origin</t>
|
||||
</option>
|
||||
</select>
|
||||
<vn-filter placeholder="_Realm">
|
||||
<vn-filter
|
||||
placeholder="_Realm"
|
||||
param="realm">
|
||||
<db-model
|
||||
id="realms-model"
|
||||
property="model"
|
||||
|
@ -244,7 +246,11 @@
|
|||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<vn-filter placeholder="_Subtype" param="type">
|
||||
<vn-filter
|
||||
placeholder="_Family"
|
||||
param="type"
|
||||
filter="filter"
|
||||
disable-operation="op-type">
|
||||
<db-model
|
||||
id="types-model"
|
||||
property="model"
|
||||
|
@ -253,16 +259,20 @@
|
|||
on-status-changed="refreshTitle">
|
||||
<custom>
|
||||
CALL item_available ();
|
||||
SELECT DISTINCT t.tipo_id, LEFT(t.Tipo, 18) type
|
||||
SELECT DISTINCT t.tipo_id, t.Tipo type
|
||||
FROM vn2008.Tipos t
|
||||
JOIN vn2008.Articles a ON a.tipo_id = t.tipo_id
|
||||
JOIN tmp.item_available i ON i.item_id = a.Id_Article
|
||||
/*WHERE #filter*/
|
||||
WHERE #filter
|
||||
ORDER BY t.Tipo
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<vn-filter placeholder="_Color" param="color">
|
||||
<vn-filter
|
||||
placeholder="_Color"
|
||||
param="color"
|
||||
filter="filter"
|
||||
disable-operation="op-color">
|
||||
<db-model property="model" auto-load="false" result-index="1">
|
||||
<custom>
|
||||
CALL item_available ();
|
||||
|
@ -270,37 +280,16 @@
|
|||
FROM vn2008.Tintas c
|
||||
JOIN vn2008.Articles a ON a.Color = c.Id_Tinta
|
||||
JOIN tmp.item_available i ON i.item_id = a.Id_Article
|
||||
/*WHERE #filter*/
|
||||
WHERE #filter
|
||||
ORDER BY c.name
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<vn-filter placeholder="_Origin" param="origin">
|
||||
<db-model property="model" auto-load="false" result-index="1">
|
||||
<custom>
|
||||
CALL item_available ();
|
||||
SELECT DISTINCT o.id, o.Origen, o.Abreviatura
|
||||
FROM vn2008.Origen o
|
||||
JOIN vn2008.Articles a ON a.id_origen = o.id
|
||||
JOIN tmp.item_available i ON i.item_id = a.Id_Article
|
||||
/*WHERE #filter*/
|
||||
ORDER BY o.Origen
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<vn-filter placeholder="_Category" param="category">
|
||||
<db-model property="model" auto-load="false" result-index="1">
|
||||
<custom>
|
||||
CALL item_available ();
|
||||
SELECT DISTINCT a.Categoria, a.Categoria category
|
||||
FROM vn2008.Articles a
|
||||
JOIN tmp.item_available i ON i.item_id = a.Id_Article
|
||||
/*WHERE #filter*/
|
||||
ORDER BY a.Categoria
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<vn-filter placeholder="_Producer" param="producer">
|
||||
<vn-filter
|
||||
placeholder="_Producer"
|
||||
param="producer"
|
||||
filter="filter"
|
||||
disable-operation="op-producer">
|
||||
<db-model property="model" auto-load="false" result-index="1">
|
||||
<custom>
|
||||
CALL item_available ();
|
||||
|
@ -308,11 +297,47 @@
|
|||
FROM vn2008.producer p
|
||||
JOIN vn2008.Articles a ON a.producer_id = p.producer_id
|
||||
JOIN tmp.item_available i ON i.item_id = a.Id_Article
|
||||
/*WHERE #filter*/
|
||||
WHERE #filter
|
||||
ORDER BY p.name
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<vn-filter
|
||||
placeholder="_Origin"
|
||||
param="origin"
|
||||
filter="filter"
|
||||
disable-operation="op-origin">
|
||||
<db-model property="model" auto-load="false" result-index="1">
|
||||
<custom>
|
||||
CALL item_available ();
|
||||
SELECT DISTINCT o.id, o.Origen, o.Abreviatura
|
||||
FROM vn2008.Origen o
|
||||
JOIN vn2008.Articles a ON a.id_origen = o.id
|
||||
JOIN tmp.item_available i ON i.item_id = a.Id_Article
|
||||
WHERE #filter
|
||||
ORDER BY o.Origen
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<vn-filter
|
||||
placeholder="_Category"
|
||||
param="category"
|
||||
filter="filter"
|
||||
disable-operation="op-category">
|
||||
<db-model property="model" auto-load="false" result-index="1">
|
||||
<custom>
|
||||
CALL item_available ();
|
||||
SELECT DISTINCT a.Categoria, a.Categoria category
|
||||
FROM vn2008.Articles a
|
||||
JOIN tmp.item_available i ON i.item_id = a.Id_Article
|
||||
WHERE #filter
|
||||
ORDER BY a.Categoria
|
||||
</custom>
|
||||
</db-model>
|
||||
</vn-filter>
|
||||
<button class="remove-filters thin" on-click="onRemoveFiltersClick">
|
||||
<t>Remove filters</t>
|
||||
</button>
|
||||
</div>
|
||||
<!--
|
||||
<htk-repeater
|
||||
|
@ -352,6 +377,7 @@
|
|||
</div>
|
||||
<div id="lots-popup" class="lots-popup">
|
||||
<htk-grid class="lots-grid" model="item-lots" show-header="false">
|
||||
<htk-column-text title="_Store" column="warehouse"/>
|
||||
<htk-column-spin title="_Price" column="price" unit="€" digits="2"/>
|
||||
<htk-column-text title="_Pack" column="grouping" format="x%.0d"/>
|
||||
<htk-column-button
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Checkout = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Confirm = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,onOrderReady: function (form)
|
||||
{
|
||||
|
|
|
@ -1,30 +1,36 @@
|
|||
<vn>
|
||||
<vn-group>
|
||||
<db-form id="order-form" on-ready="onOrderReady">
|
||||
<db-model>
|
||||
SELECT o.id, o.date_send, o.note, o.company_id,
|
||||
ag.description agency, v.code method, c.credit,
|
||||
ad.consignee, ad.zip_code, ad.city, ad.name address
|
||||
FROM basket o
|
||||
JOIN vn2008.Agencias ag ON ag.Id_Agencia = o.agency_id
|
||||
LEFT JOIN address_view ad ON ad.id = o.address_id
|
||||
JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id
|
||||
JOIN customer_view c
|
||||
<db-model property="model">
|
||||
<custom>
|
||||
SELECT o.id, o.date_send, o.note, o.company_id,
|
||||
ag.description agency, v.code method, c.credit,
|
||||
ad.consignee, ad.zip_code, ad.city, ad.name address
|
||||
FROM basket o
|
||||
JOIN vn2008.Agencias ag ON ag.Id_Agencia = o.agency_id
|
||||
LEFT JOIN address_view ad ON ad.id = o.address_id
|
||||
JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id
|
||||
JOIN customer_view c
|
||||
</custom>
|
||||
</db-model>
|
||||
</db-form>
|
||||
<db-form id="total-form" on-ready="onImportReady">
|
||||
<db-model result-index="1">
|
||||
CALL basket_get_vat ();
|
||||
SELECT
|
||||
IFNULL(SUM(tax_base), 0) tax_base,
|
||||
IFNULL(SUM(vat + surcharge), 0) vat
|
||||
FROM t_order_vat;
|
||||
DROP TEMPORARY TABLE t_order_vat;
|
||||
<db-model property="model" result-index="1">
|
||||
<custom>
|
||||
CALL basket_get_vat ();
|
||||
SELECT
|
||||
IFNULL(SUM(tax_base), 0) tax_base,
|
||||
IFNULL(SUM(vat + surcharge), 0) vat
|
||||
FROM t_order_vat;
|
||||
DROP TEMPORARY TABLE t_order_vat;
|
||||
</custom>
|
||||
</db-model>
|
||||
</db-form>
|
||||
<db-query id="confirm-query" on-ready="onConfirm">
|
||||
CALL basket_confirm ();
|
||||
SELECT customer_get_debt();
|
||||
<custom>
|
||||
CALL basket_confirm ();
|
||||
SELECT customer_get_debt();
|
||||
</custom>
|
||||
</db-query>
|
||||
</vn-group>
|
||||
<div id="title">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Invoices = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function () {}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Orders = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.Ticket = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -4,16 +4,20 @@
|
|||
<vn-param id="ticket-id"/>
|
||||
</vn-hash-param>
|
||||
<db-form id="ticket">
|
||||
<db-model id="ticket-data">
|
||||
SELECT t.id, date, a.Agencia, note, p.name province,
|
||||
zip_code, city, c.name, consignee, invoice
|
||||
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
|
||||
JOIN vn2008.province p ON c.province_id = p.province_id
|
||||
WHERE t.id = #ticket
|
||||
<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
|
||||
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
|
||||
JOIN vn2008.province p ON c.province_id = p.province_id
|
||||
WHERE t.id = #ticket
|
||||
</custom>
|
||||
<sql-batch property="batch">
|
||||
<item name="ticket" param="ticket-id"/>
|
||||
<custom>
|
||||
<item name="ticket" param="ticket-id"/>
|
||||
</custom>
|
||||
</sql-batch>
|
||||
</db-model>
|
||||
</db-form>
|
||||
|
@ -84,17 +88,21 @@
|
|||
<htk-column-text title="_Consignee" column="consignee"/>
|
||||
</htk-grid>
|
||||
<htk-grid>
|
||||
<db-model id="movements">
|
||||
SELECT m.item_id, amount, concept, Categoria, Medida, Tallos, Color,
|
||||
Abreviatura, IF(fixed != FALSE, price, NULL) price, fixed, discount
|
||||
FROM ticket_row_view m
|
||||
INNER JOIN vn2008.Articles a
|
||||
ON m.item_id = a.Id_Article AND ticket_id = #ticket
|
||||
LEFT JOIN vn2008.Origen o
|
||||
ON a.id_origen = o.id
|
||||
ORDER BY concept
|
||||
<db-model property="model" id="movements">
|
||||
<custom>
|
||||
SELECT m.item_id, amount, concept, Categoria, Medida, Tallos, Color,
|
||||
Abreviatura, IF(fixed != FALSE, price, NULL) price, fixed, discount
|
||||
FROM ticket_row_view m
|
||||
INNER JOIN vn2008.Articles a
|
||||
ON m.item_id = a.Id_Article AND ticket_id = #ticket
|
||||
LEFT JOIN vn2008.Origen o
|
||||
ON a.id_origen = o.id
|
||||
ORDER BY concept
|
||||
</custom>
|
||||
<sql-batch property="batch">
|
||||
<item name="ticket" param="ticket-id"/>
|
||||
<custom>
|
||||
<item name="ticket" param="ticket-id"/>
|
||||
</custom>
|
||||
</sql-batch>
|
||||
</db-model>
|
||||
<htk-column-spin title="_ItemNumber" column="item_id"/>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.New = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,activate: function ()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Vn.News = new Class
|
||||
({
|
||||
Extends: Vn.Module
|
||||
Extends: Vn.Form
|
||||
|
||||
,editNew: function (newId)
|
||||
{
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
<?php
|
||||
|
||||
use Vn\Hedera\Web;
|
||||
|
||||
if ($result = Web::$sysConn->query ('SELECT name, content FROM metatag'))
|
||||
{
|
||||
echo '<meta name="content-language" content="'.$_SESSION['lang'].'"/>'."\n\t\t";
|
||||
|
||||
while ($row = $result->fetch_assoc ())
|
||||
echo '<meta name="'.$row['name'].'" content="'.$row['content'].'"/>'."\n\t\t";
|
||||
|
||||
$result->free ();
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,124 +0,0 @@
|
|||
|
||||
/* Generic */
|
||||
@media screen and (orientation: landscape)
|
||||
{
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media screen and (orientation: portrait)
|
||||
{
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* Smartphones (portrait and landscape) */
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 480px){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* Smartphones (landscape) */
|
||||
@media only screen and (min-width : 321px){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
/* Smartphones (portrait) */
|
||||
@media only screen and (max-width : 320px){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* iPads (portrait and landscape) */
|
||||
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
/* iPads (landscape) */
|
||||
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape){
|
||||
* { font-size: 10pt; }
|
||||
}
|
||||
|
||||
/* iPads (portrait) */
|
||||
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
/* iPad 3 */
|
||||
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2){
|
||||
* { font-size: 10pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
/* Desktops and laptops */
|
||||
@media only screen and (min-width : 1224px){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
/* Large screens */
|
||||
@media only screen and (min-width : 1824px){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
/* iPhone 4 */
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* iPhone 5 */
|
||||
@media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* iPhone 6 */
|
||||
@media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* iPhone 6+ */
|
||||
@media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* Samsung Galaxy S3 */
|
||||
@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* Samsung Galaxy S4 */
|
||||
@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
||||
/* Samsung Galaxy S5 */
|
||||
@media only screen and (min-device-width: 360px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){
|
||||
* { font-size: 13pt; }
|
||||
}
|
||||
|
||||
@media only screen and (min-device-width: 360px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){
|
||||
* { font-size: 26pt; }
|
||||
}
|
||||
|
Binary file not shown.
|
@ -1,12 +0,0 @@
|
|||
|
||||
/* Global */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url(opensans.ttf) format('truetype');
|
||||
}
|
||||
*
|
||||
{
|
||||
font-size: 13px;
|
||||
font-family: 'Open Sans', 'Verdana', 'Sans';
|
||||
}
|
|
@ -1,822 +0,0 @@
|
|||
|
||||
/* Responsive */
|
||||
|
||||
@media screen
|
||||
{
|
||||
* { font-size: 8pt; }
|
||||
}
|
||||
@media screen and (min-device-width: 1150px)
|
||||
{
|
||||
* { font-size: 10pt; }
|
||||
}
|
||||
@media screen and (min-device-width: 1850px)
|
||||
{
|
||||
* { font-size: 12pt; }
|
||||
}
|
||||
|
||||
/* Global */
|
||||
|
||||
@font-face
|
||||
{
|
||||
font-family: 'Open Sans';
|
||||
src: url(opensans.ttf) format('truetype');
|
||||
}
|
||||
body
|
||||
{
|
||||
margin: 0;
|
||||
}
|
||||
body,
|
||||
label,
|
||||
button,
|
||||
input,
|
||||
textarea
|
||||
{
|
||||
font-size: 1em;
|
||||
font-family: 'Open Sans', 'Verdana', 'Sans';
|
||||
}
|
||||
iframe
|
||||
{
|
||||
border: 0;
|
||||
}
|
||||
fieldset,
|
||||
div
|
||||
{
|
||||
margin: 0;
|
||||
}
|
||||
form
|
||||
{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
table
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active
|
||||
{
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
a img
|
||||
{
|
||||
padding: 1px;
|
||||
border: 1px solid #EEE;
|
||||
border-color: transparent;
|
||||
}
|
||||
a img:hover
|
||||
{
|
||||
border-color: #999;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6
|
||||
{
|
||||
margin: 0;
|
||||
padding: 0.2em;
|
||||
}
|
||||
h1
|
||||
{
|
||||
font-size: 1.5em;
|
||||
}
|
||||
h2
|
||||
{
|
||||
font-size: 1.3em;
|
||||
}
|
||||
p
|
||||
{
|
||||
margin: 0.8em 0;
|
||||
}
|
||||
|
||||
/* Inputs */
|
||||
|
||||
input[type=text],
|
||||
input[type=password],
|
||||
input[type=file],
|
||||
input[type=number],
|
||||
textarea,
|
||||
select
|
||||
{
|
||||
border: 1px solid #CCD;
|
||||
margin: 0.2em;
|
||||
border-radius: 0.1em;
|
||||
box-shadow: 0 0.1em 0.1em #CCC;
|
||||
}
|
||||
|
||||
input[type=text],
|
||||
input[type=password],
|
||||
input[type=file],
|
||||
input[type=number],
|
||||
textarea
|
||||
{
|
||||
padding: 0.3em;
|
||||
}
|
||||
select
|
||||
{
|
||||
background-color: white;
|
||||
font-size: 1.1em;
|
||||
height: 1.8em;
|
||||
}
|
||||
option
|
||||
{
|
||||
padding: 0.3em;
|
||||
border-width: 0;
|
||||
font-weight: normal;
|
||||
font-size: 1em;
|
||||
}
|
||||
select,
|
||||
option
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
input[type=text],
|
||||
input[type=password]
|
||||
{
|
||||
height: 1.6em;
|
||||
}
|
||||
textarea
|
||||
{
|
||||
height: 3.5em;
|
||||
width: 20em;
|
||||
}
|
||||
input[type=text]:focus,
|
||||
input[type=password]:focus,
|
||||
textarea:focus
|
||||
{
|
||||
background-color: #EEF;
|
||||
border-color: #BBC;
|
||||
}
|
||||
input[type=checkbox],
|
||||
input[type=radio]
|
||||
{
|
||||
cursor: pointer;
|
||||
margin: 0.2em;
|
||||
padding: 0.3em;
|
||||
width: 0.8em;
|
||||
height: 0.8em;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
|
||||
button,
|
||||
input[type=submit],
|
||||
input[type=button]
|
||||
{
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
color: white;
|
||||
padding: 0.5em;
|
||||
cursor: pointer;
|
||||
border-radius: 0.1em;
|
||||
}
|
||||
button:hover,
|
||||
input[type=submit]:hover,
|
||||
input[type=button]:hover
|
||||
{
|
||||
background-color: rgba(1, 1, 1, 0.1);
|
||||
}
|
||||
|
||||
/* Flat button */
|
||||
|
||||
button.flat,
|
||||
input.button
|
||||
{
|
||||
border: none;
|
||||
border-radius: 0.1em;
|
||||
box-shadow: 0 0.2em 0.2em #DDD;
|
||||
background-color: #AD4;
|
||||
color: black;
|
||||
}
|
||||
button.flat:hover,
|
||||
input.button:hover
|
||||
{
|
||||
background-color: #9C3;
|
||||
cursor: pointer;
|
||||
}
|
||||
button.flat:disabled,
|
||||
input.button:disabled
|
||||
{
|
||||
color: gray;
|
||||
}
|
||||
|
||||
/* Thin button */
|
||||
|
||||
button.thin
|
||||
{
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
color: #008D77;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
button.thin:hover
|
||||
{
|
||||
background-color: rgba(1,1,1,0.1);
|
||||
}
|
||||
button.thin:disabled
|
||||
{
|
||||
color: gray;
|
||||
}
|
||||
|
||||
/* Image */
|
||||
|
||||
img.editable
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Button */
|
||||
|
||||
.htk-button img
|
||||
{
|
||||
height: 1.5em;
|
||||
}
|
||||
|
||||
/* Float */
|
||||
|
||||
.clear
|
||||
{
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Box */
|
||||
|
||||
.box
|
||||
{
|
||||
background-color: white;
|
||||
margin: 0 auto;
|
||||
border-radius: 0.1em;
|
||||
box-shadow: 0 0.2em 0.2em #CCC;
|
||||
}
|
||||
.box .header
|
||||
{
|
||||
padding: 0.6em 0.8em;
|
||||
margin: 0;
|
||||
background-color: #009688;
|
||||
color: white;
|
||||
}
|
||||
.box .header > h1
|
||||
{
|
||||
color: white;
|
||||
text-align: left;
|
||||
font-size: 1.6em;
|
||||
line-height: 2em;
|
||||
font-weight: normal;
|
||||
display: inline;
|
||||
}
|
||||
.box .body
|
||||
{
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
/* Form */
|
||||
|
||||
.form
|
||||
{
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.form-group
|
||||
{
|
||||
padding: 0.4em;
|
||||
}
|
||||
.form-group > label
|
||||
{
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.form-group > input[type=text],
|
||||
.form-group > input[type=password],
|
||||
.form-group > select,
|
||||
.form-group > textarea
|
||||
{
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Action bar */
|
||||
|
||||
.action-bar
|
||||
{
|
||||
float: right;
|
||||
padding: 0;
|
||||
margin-top: 0.3em;
|
||||
}
|
||||
.action-bar > *
|
||||
{
|
||||
float: left;
|
||||
padding: 0.4em;
|
||||
}
|
||||
.action-bar > button
|
||||
{
|
||||
border-left: 1px solid white;
|
||||
}
|
||||
.action-bar > button:first-child
|
||||
{
|
||||
border-left: none;
|
||||
}
|
||||
.action-bar > button:hover
|
||||
{
|
||||
background-color: rgba(1, 1, 1, 0.2);
|
||||
}
|
||||
.action-bar > button > img
|
||||
{
|
||||
vertical-align: middle;
|
||||
margin-right: 0.4em;
|
||||
height: 1.4em;
|
||||
}
|
||||
|
||||
/* Form */
|
||||
|
||||
table.form
|
||||
{
|
||||
padding: 1em;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0.3em;
|
||||
}
|
||||
table.form td.label
|
||||
{
|
||||
width: 45%;
|
||||
text-align: right;
|
||||
}
|
||||
table.form tr
|
||||
{
|
||||
height: 2.8em;
|
||||
}
|
||||
|
||||
/* Icon */
|
||||
|
||||
img.icon
|
||||
{
|
||||
height: 1.5em;
|
||||
}
|
||||
|
||||
/* Masonry */
|
||||
|
||||
.masonry
|
||||
{
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
}
|
||||
.masonry-box
|
||||
{
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
@media screen and (min-width: 1000px) and (max-width: 1399px)
|
||||
{
|
||||
.masonry-box
|
||||
{
|
||||
width: 50%;
|
||||
display: block;
|
||||
float: left;
|
||||
clear: left;
|
||||
}
|
||||
.masonry-box:nth-child(2n+0)
|
||||
{
|
||||
float: right;
|
||||
clear: right;
|
||||
}
|
||||
}
|
||||
@media screen and (min-width: 1400px)
|
||||
{
|
||||
.masonry-box { width: 33.3%; }
|
||||
}
|
||||
@media screen and (min-width: 2000px)
|
||||
{
|
||||
.masonry-box { width: 25%; }
|
||||
}
|
||||
|
||||
/* Grid */
|
||||
|
||||
.htk-grid
|
||||
{
|
||||
margin: auto;
|
||||
border-collapse: collapse;
|
||||
text-align: center;
|
||||
}
|
||||
.htk-grid > thead > tr,
|
||||
.htk-grid > tfoot > tr
|
||||
{
|
||||
background-color: #009688;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
height: 3em;
|
||||
}
|
||||
.htk-grid > thead th
|
||||
{
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
font-weight: normal;
|
||||
padding: 0 0.4em;
|
||||
}
|
||||
.htk-grid > thead th:hover
|
||||
{
|
||||
background-color: rgba(1, 1, 1, 0.2);
|
||||
}
|
||||
.htk-grid tr
|
||||
{
|
||||
height: 3.5em;
|
||||
}
|
||||
.htk-grid > tfoot a,
|
||||
.htk-grid > thead a
|
||||
{
|
||||
color: black;
|
||||
}
|
||||
.htk-grid tr.pair-row
|
||||
{
|
||||
background-color: transparent;
|
||||
}
|
||||
.htk-grid .message
|
||||
{
|
||||
height: 5em;
|
||||
}
|
||||
.htk-grid .message img
|
||||
{
|
||||
vertical-align: middle;
|
||||
padding: 0.8em;
|
||||
height: 1.8em;
|
||||
}
|
||||
.htk-grid > tbody tr
|
||||
{
|
||||
border-top: 1px solid #DDD;
|
||||
}
|
||||
.htk-grid > tbody tr:first-child
|
||||
{
|
||||
border-top: none;
|
||||
}
|
||||
.htk-grid > tbody td
|
||||
{
|
||||
margin: 0;
|
||||
padding: 0 0.5em;
|
||||
}
|
||||
.htk-grid > tbody td:first-child,
|
||||
.htk-grid > thead th:first-child
|
||||
{
|
||||
padding-left: 1em;
|
||||
}
|
||||
.htk-grid > tbody td:last-child,
|
||||
.htk-grid > thead th:last-child
|
||||
{
|
||||
padding-right: 1em;
|
||||
}
|
||||
.cell-spin
|
||||
{
|
||||
width: 2.5em;
|
||||
text-align: right;
|
||||
}
|
||||
.cell-button
|
||||
{
|
||||
margin: 0;
|
||||
padding: 0.5em;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
border-radius: 0.1em;
|
||||
}
|
||||
.cell-button:hover
|
||||
{
|
||||
background-color: rgba(1, 1, 1, 0.1);
|
||||
}
|
||||
.cell-button img
|
||||
{
|
||||
height: 1.5em;
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
.cell-image > img
|
||||
{
|
||||
max-width: 2.5em;
|
||||
max-height: 2.5em;
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
/* Repater */
|
||||
|
||||
.htk-repeater > .message
|
||||
{
|
||||
padding: 1em 0;
|
||||
text-align: center;
|
||||
}
|
||||
.htk-repeater > .message > *
|
||||
{
|
||||
vertical-align: middle;
|
||||
}
|
||||
.htk-repeater > .message > img
|
||||
{
|
||||
padding: 0.8em;
|
||||
padding-left: 0;
|
||||
height: 1.8em;
|
||||
}
|
||||
|
||||
/* Calendar */
|
||||
|
||||
.htk-calendar
|
||||
{
|
||||
width: 20em;
|
||||
background-color: white;
|
||||
border: none;
|
||||
}
|
||||
.htk-calendar table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.htk-calendar thead tr,
|
||||
.htk-calendar tfoot tr
|
||||
{
|
||||
background-color: #009688;
|
||||
color: white;
|
||||
font-weight: normal;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
height: 3em;
|
||||
}
|
||||
.htk-calendar thead span
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
.htk-calendar thead tr
|
||||
{
|
||||
border-bottom: none;
|
||||
}
|
||||
.htk-calendar tfoot tr
|
||||
{
|
||||
border-top: none;
|
||||
}
|
||||
.htk-calendar th.button:hover
|
||||
{
|
||||
cursor: pointer;
|
||||
background-color: rgba(1, 1, 1, 0.2);
|
||||
}
|
||||
.htk-calendar col
|
||||
{
|
||||
width: 14.2%;
|
||||
}
|
||||
.htk-calendar tr
|
||||
{
|
||||
height: 2em;
|
||||
}
|
||||
.htk-calendar tbody td
|
||||
{
|
||||
text-align: right;
|
||||
}
|
||||
.htk-calendar tbody td > div
|
||||
{
|
||||
height: 2em;
|
||||
width: 2em;
|
||||
line-height: 2em;
|
||||
text-align: center;
|
||||
border-radius: 2em;
|
||||
padding: 0.3em;
|
||||
margin: 0 auto;
|
||||
color: #555;
|
||||
}
|
||||
.htk-calendar div.disabled
|
||||
{
|
||||
color: #999;
|
||||
}
|
||||
.htk-calendar div.today
|
||||
{
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
}
|
||||
.htk-calendar div.selected
|
||||
{
|
||||
color: white;
|
||||
background-color: #009688;
|
||||
}
|
||||
.htk-calendar div.enabled:hover
|
||||
{
|
||||
cursor: pointer;
|
||||
background-color: #008678;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Date chooser */
|
||||
|
||||
.htk-date-chooser > button
|
||||
{
|
||||
margin: 0.2em;
|
||||
padding: 0.3em;
|
||||
background-color: white;
|
||||
color: black;
|
||||
text-align: left;
|
||||
min-width: 9em;
|
||||
min-height: 2.3em;
|
||||
border: 1px solid #CCD;
|
||||
border-radius: 0.1em;
|
||||
box-shadow: 0 0.1em 0.1em #CCC;
|
||||
}
|
||||
|
||||
/* Full image */
|
||||
|
||||
.htk-full-image
|
||||
{
|
||||
z-index: 100;
|
||||
position: fixed;
|
||||
background-color: #FFF;
|
||||
text-align: center;
|
||||
border: 1px solid #999;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.htk-full-image-loader
|
||||
{
|
||||
z-index: 110;
|
||||
position: fixed;
|
||||
background-color: #FFF;
|
||||
border: 1px solid #999;
|
||||
border-radius: 0.1em;
|
||||
}
|
||||
.htk-full-image-loader img
|
||||
{
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
/* Toast */
|
||||
|
||||
.htk-toast
|
||||
{
|
||||
z-index: 210;
|
||||
display: block;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 4em;
|
||||
width: 21em;
|
||||
margin-left: -11em;
|
||||
text-align: center;
|
||||
overflow: auto;
|
||||
max-height: 40em;
|
||||
}
|
||||
.htk-toast > div
|
||||
{
|
||||
padding: .5em 2%;
|
||||
margin: .5em 2%;
|
||||
border-radius: 0.1em;
|
||||
box-shadow: 0 0 0.4em #666;
|
||||
width: 92%;
|
||||
}
|
||||
.htk-toast > .message
|
||||
{
|
||||
background-color: #BFB;
|
||||
}
|
||||
.htk-toast > .warning
|
||||
{
|
||||
background-color: #FFB;
|
||||
}
|
||||
.htk-toast > .error
|
||||
{
|
||||
background-color: #FBB;
|
||||
}
|
||||
|
||||
/* Popup */
|
||||
|
||||
.htk-popup
|
||||
{
|
||||
z-index: 200;
|
||||
display: block;
|
||||
position: fixed;
|
||||
background-color: white;
|
||||
border-radius: 0.1em;
|
||||
box-shadow: 0 0 0.4em #666;
|
||||
}
|
||||
.htk-background
|
||||
{
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
z-index: 190;
|
||||
background-color: rgba(1, 1, 1, 0.7);
|
||||
}
|
||||
|
||||
/* Image editor */
|
||||
|
||||
.htk-image-editor
|
||||
{
|
||||
width: 20em;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.htk-image-editor h2
|
||||
{
|
||||
color: white;
|
||||
background-color: #009688;
|
||||
text-align: left;
|
||||
font-size: 1.3em;
|
||||
line-height: 1.7em;
|
||||
font-weight: normal;
|
||||
padding: 0.6em 0.8em;
|
||||
margin: 0;
|
||||
}
|
||||
.htk-image-editor iframe
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
.htk-image-editor form
|
||||
{
|
||||
padding: 1.5em;
|
||||
}
|
||||
.htk-image-editor .form-group
|
||||
{
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.htk-image-editor .form-group label
|
||||
{
|
||||
display: block;
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
.htk-image-editor .form-group input
|
||||
{
|
||||
width: 95%;
|
||||
height: 1.8em;
|
||||
}
|
||||
.htk-image-editor .footer
|
||||
{
|
||||
margin-top: 1em;
|
||||
text-align: center;
|
||||
}
|
||||
.htk-image-editor .footer img
|
||||
{
|
||||
visibility: hidden;
|
||||
vertical-align: middle;
|
||||
padding-right: 1em;
|
||||
}
|
||||
.htk-image-editor .footer input
|
||||
{
|
||||
display: inline;
|
||||
margin-left: 0.5em;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
|
||||
/* Assistant */
|
||||
|
||||
.htk-assistant > div
|
||||
{
|
||||
display: none;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 4em;
|
||||
}
|
||||
.htk-assistant > div > h2
|
||||
{
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
font-weight: normal;
|
||||
font-size: 1.5em;
|
||||
margin: 0.5em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.htk-assistant *
|
||||
{
|
||||
color: #555;
|
||||
}
|
||||
|
||||
/* Assistant bar */
|
||||
|
||||
.htk-assistant-bar
|
||||
{
|
||||
margin: 0.5em auto;
|
||||
max-width: 30em;
|
||||
position: relative;
|
||||
}
|
||||
.htk-assistant-bar img
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
.htk-assistant-bar > img
|
||||
{
|
||||
position: absolute;
|
||||
width: 1.8em;
|
||||
top: 0;
|
||||
padding: 0.3em;
|
||||
border-radius: 0.1em;
|
||||
}
|
||||
.htk-assistant-bar > img:hover
|
||||
{
|
||||
background-color: rgba(1,1,1,0.1);
|
||||
}
|
||||
.htk-assistant-bar > img.previous
|
||||
{
|
||||
left: 0;
|
||||
}
|
||||
.htk-assistant-bar > img.next
|
||||
{
|
||||
right: 0;
|
||||
}
|
||||
.htk-assistant-bar > div
|
||||
{
|
||||
margin: 0 auto;
|
||||
padding-top: 0.2em;
|
||||
}
|
||||
.htk-assistant-bar > div > img
|
||||
{
|
||||
padding: 0.3em 0.2em;
|
||||
width: 1.3em;
|
||||
}
|
||||
.htk-assistant-bar > div > img:hover
|
||||
{
|
||||
opacity: .7;
|
||||
}
|
||||
|
|
@ -111,11 +111,14 @@ Db.Model.implement
|
|||
type: String
|
||||
,set: function (x)
|
||||
{
|
||||
this._stmt = new Sql.String ({query: x});
|
||||
this.stmt = new Sql.String ({query: x});
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._stmt.render (null);
|
||||
if (this._stmt)
|
||||
return this._stmt.render (null);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
@ -249,6 +252,8 @@ Db.Model.implement
|
|||
{
|
||||
if (this.autoLoad)
|
||||
this.refresh ();
|
||||
else
|
||||
this.clean ();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -933,6 +938,22 @@ Db.Model.implement
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Orders the model by the specified column name.
|
||||
*
|
||||
* @param {integer} column The column name
|
||||
* @param {Db.Model.SortWay} way The sort way
|
||||
**/
|
||||
,sortByName: function (columnName, way)
|
||||
{
|
||||
var index = this.getColumnIndex (columnName);
|
||||
|
||||
if (index != -1)
|
||||
this.sort (index, way);
|
||||
else
|
||||
console.warn ('Db.Model: Column %s doesn\'t exist', columnName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Orders the model by the specified column.
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
|
||||
Vn.Form = new Class
|
||||
({
|
||||
Extends: Vn.Object
|
||||
|
||||
,initialize: function (gui, formInfo)
|
||||
{
|
||||
this.gui = gui;
|
||||
this.conn = gui.conn;
|
||||
this.hash = gui.hash;
|
||||
this.formInfo = formInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an object from the builder associated to this form.
|
||||
*
|
||||
* @param {string} objectId The object identifier
|
||||
* @return {Object} The object, or %null if not found
|
||||
**/
|
||||
,$: function (objectId)
|
||||
{
|
||||
if (this.builder)
|
||||
return this.builder.getById (objectId);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the form is opened.
|
||||
**/
|
||||
,open: function ()
|
||||
{
|
||||
this.close ();
|
||||
|
||||
var builder = new Vn.Builder ();
|
||||
builder.signalData = this;
|
||||
builder.loadXml ('forms/'+ this.formInfo.path +'/ui.xml');
|
||||
|
||||
var res = this.builder = builder.load ();
|
||||
this.node = res.$('form');
|
||||
res.link ();
|
||||
|
||||
var models = res.getByTagName ('db-model');
|
||||
|
||||
for (var i = 0; i < models.length; i++)
|
||||
models[i].conn = this.conn;
|
||||
|
||||
var queries = res.getByTagName ('db-query');
|
||||
|
||||
for (var i = 0; i < queries.length; i++)
|
||||
queries[i].conn = this.conn;
|
||||
|
||||
this.gui.formHolder.appendChild (this.node);
|
||||
this.gui.setTitle (res.$('title'));
|
||||
this.gui.setActions (res.$('actions'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the form is activated.
|
||||
**/
|
||||
,activate: function () {}
|
||||
|
||||
/**
|
||||
* Called when the form is deactivated.
|
||||
**/
|
||||
,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 ();
|
||||
this.parent ();
|
||||
}
|
||||
});
|
||||
|
|
@ -49,7 +49,7 @@ Vn.Gui = new Class
|
|||
|
||||
this.hash = Vn.Hash;
|
||||
this.hashParam = new Vn.HashParam ({key: 'form'});
|
||||
this.hashParam.on ('changed', this.onFormChange, this);
|
||||
this.hashParam.on ('changed', this._onFormChange, this);
|
||||
|
||||
this.$('background').onclick = function () {};
|
||||
|
||||
|
@ -67,7 +67,7 @@ Vn.Gui = new Class
|
|||
if (!Vn.Cookie.check ('hedera_cookies'))
|
||||
{
|
||||
Vn.Cookie.set ('hedera_cookies', true);
|
||||
Htk.Toast.showWarning (_('CookiesNotification'));
|
||||
Htk.Toast.showWarning (_('By using this site you accept cookies'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -189,7 +189,7 @@ Vn.Gui = new Class
|
|||
|
||||
// Loading the default form
|
||||
|
||||
this.onFormChange ();
|
||||
this._onFormChange ();
|
||||
}
|
||||
|
||||
,notifyError: function (error)
|
||||
|
@ -214,7 +214,7 @@ Vn.Gui = new Class
|
|||
switch (error.domain)
|
||||
{
|
||||
case 'Auth':
|
||||
Htk.Toast.showError (_('SessionExpired'));
|
||||
Htk.Toast.showError (_('You\'ve been too idle'));
|
||||
this.signalEmit ('logout');
|
||||
break;
|
||||
case 'Version':
|
||||
|
@ -225,12 +225,12 @@ Vn.Gui = new Class
|
|||
break;
|
||||
default:
|
||||
console.error (error.message);
|
||||
Htk.Toast.showError (_('InternalError'));
|
||||
Htk.Toast.showError (_('There was an internal error'));
|
||||
}
|
||||
else
|
||||
{
|
||||
console.error (error);
|
||||
Htk.Toast.showError (_('InternalError'));
|
||||
Htk.Toast.showError (_('There was an internal error'));
|
||||
this.notifyError (error);
|
||||
}
|
||||
}
|
||||
|
@ -275,7 +275,7 @@ Vn.Gui = new Class
|
|||
this.newVersionBlock = true;
|
||||
|
||||
var reload;
|
||||
var message = _('NewVersionAvailable') +"\n\n"+ error.message;
|
||||
var message = _('New version available') +"\n\n"+ error.message;
|
||||
|
||||
if (error.code == 'criticalVersion')
|
||||
{
|
||||
|
@ -365,10 +365,15 @@ Vn.Gui = new Class
|
|||
}
|
||||
}
|
||||
|
||||
,onFormChange: function ()
|
||||
,_onFormChange: function ()
|
||||
{
|
||||
var formPath = this.hashParam.value;
|
||||
this.openForm (formPath ? formPath : Vn.Config['default_form'], null);
|
||||
|
||||
if (!formPath)
|
||||
formPath = Vn.Config['default_form'];
|
||||
|
||||
this.openForm (formPath,
|
||||
this._onFormLoad.bind (this));
|
||||
}
|
||||
|
||||
,openForm: function (formPath, callback)
|
||||
|
@ -377,116 +382,43 @@ Vn.Gui = new Class
|
|||
this.loaderPush ();
|
||||
|
||||
this.closeForm ();
|
||||
|
||||
this.requestedForm = formPath;
|
||||
|
||||
var formInfo = this.forms[formPath];
|
||||
var path = 'forms/'+ formPath;
|
||||
|
||||
this.activeCss = path;
|
||||
|
||||
Vn.includeCss (this.activeCss +'/style.css');
|
||||
|
||||
if (!formInfo)
|
||||
{
|
||||
var aux = formPath.split ('/');
|
||||
var formName = aux[aux.length - 1];
|
||||
|
||||
var klass = 'Vn.'+ formName.charAt (0).toUpperCase ();
|
||||
klass += formName.substr (1).replace (/\w\-\w/g, function (token)
|
||||
{
|
||||
return token.charAt (0) + token.charAt (2).toUpperCase ();
|
||||
});
|
||||
|
||||
formInfo = {
|
||||
path: formPath
|
||||
,klass: klass
|
||||
,localeReady: false
|
||||
,jsReady: false
|
||||
,uiReady: false
|
||||
,error: false
|
||||
,ready: false
|
||||
,callbacks: []
|
||||
};
|
||||
|
||||
Vn.Locale.load (path,
|
||||
this.onFormLocaleReady.bind (this, formInfo));
|
||||
Vn.includeJs (path +'/'+ formName +'.js',
|
||||
this.onFormJsReady.bind (this, formInfo));
|
||||
Vn.loadXml ('forms/'+ formPath +'/ui.xml',
|
||||
this.onFormUiReady.bind (this, formInfo));
|
||||
|
||||
this.forms[formPath] = formInfo;
|
||||
}
|
||||
|
||||
var newChoosedOption = this.menuOptions[formInfo.path];
|
||||
var newChoosedOption = this.menuOptions[formPath];
|
||||
|
||||
if (newChoosedOption)
|
||||
{
|
||||
if (this.choosedOption)
|
||||
this.choosedOption.className = null;
|
||||
|
||||
newChoosedOption.className = 'selected';
|
||||
Vn.Node.addClass (newChoosedOption, 'selected');
|
||||
this.choosedOption = newChoosedOption;
|
||||
}
|
||||
|
||||
if (callback)
|
||||
formInfo.callbacks.push (callback);
|
||||
if (formInfo.ready)
|
||||
this.onFormReady (formInfo);
|
||||
}
|
||||
this.activeCss = 'forms/'+ formPath +'/style.css';
|
||||
Vn.includeCss (this.activeCss);
|
||||
|
||||
,onFormLocaleReady: function (formInfo, success)
|
||||
{
|
||||
formInfo.localeReady = true;
|
||||
this.onFormReady (formInfo);
|
||||
}
|
||||
var formInfo = this.forms[formPath];
|
||||
|
||||
,onFormJsReady: function (formInfo, success)
|
||||
{
|
||||
formInfo.jsReady = true;
|
||||
formInfo.error = !success;
|
||||
this.onFormReady (formInfo);
|
||||
}
|
||||
|
||||
,onFormUiReady: function (formInfo, success)
|
||||
{
|
||||
formInfo.uiReady = true;
|
||||
formInfo.error = !success;
|
||||
this.onFormReady (formInfo);
|
||||
}
|
||||
|
||||
,onFormReady: function (formInfo)
|
||||
{
|
||||
if (!(formInfo.localeReady && formInfo.jsReady && formInfo.uiReady))
|
||||
return;
|
||||
|
||||
formInfo.ready = true;
|
||||
|
||||
if (!formInfo.error)
|
||||
if (!formInfo)
|
||||
{
|
||||
if (formInfo.path == this.requestedForm)
|
||||
try {
|
||||
var klass = eval (formInfo.klass);
|
||||
this.activeForm = new klass (this, formInfo);
|
||||
this.activeForm.open ();
|
||||
this.activeForm.activate ();
|
||||
}
|
||||
catch (e) {
|
||||
formInfo.error = true;
|
||||
this.errorHandler (e);
|
||||
}
|
||||
formInfo = new Vn.Module ('forms', formPath);
|
||||
this.forms[formPath] = formInfo;
|
||||
}
|
||||
else
|
||||
Htk.Toast.showError (_('ErrorLoadingForm'));
|
||||
|
||||
var callbacks = formInfo.callbacks;
|
||||
formInfo.callbacks = [];
|
||||
|
||||
for (var i = 0; i < callbacks.length; i++)
|
||||
callbacks[i] (this.activeForm);
|
||||
|
||||
formInfo.addCallback (callback);
|
||||
}
|
||||
|
||||
,_onFormLoad: function (formInfo)
|
||||
{
|
||||
this.loaderPop ();
|
||||
|
||||
if (formInfo.error)
|
||||
{
|
||||
Htk.Toast.showError (_('Error loading form'));
|
||||
return;
|
||||
}
|
||||
|
||||
this.activeForm = new formInfo.klass (this, formInfo);
|
||||
this.activeForm.open ();
|
||||
this.activeForm.activate ();
|
||||
}
|
||||
|
||||
,setTitle: function (title)
|
||||
|
@ -517,9 +449,37 @@ Vn.Gui = new Class
|
|||
|
||||
if (this.activeCss)
|
||||
{
|
||||
Vn.excludeCss (this.activeCss +'/style.css');
|
||||
Vn.excludeCss (this.activeCss);
|
||||
this.activeCss = null;
|
||||
}
|
||||
|
||||
if (this.choosedOption)
|
||||
{
|
||||
Vn.Node.removeClass (this.choosedOption, 'selected');
|
||||
this.choosedOption = null;
|
||||
}
|
||||
}
|
||||
|
||||
,openReport: function (reportName, batch)
|
||||
{
|
||||
this.loaderPush ();
|
||||
|
||||
var module = new Vn.Module ('reports', reportName);
|
||||
module.addCallback (this._onReportLoad.bind (this, batch));
|
||||
}
|
||||
|
||||
,_onReportLoad: function (batch, module)
|
||||
{
|
||||
this.loaderPop ();
|
||||
|
||||
if (module.error)
|
||||
{
|
||||
Htk.Toast.showError (_('Error loading report'));
|
||||
return;
|
||||
}
|
||||
|
||||
var report = new module.klass (module, this);
|
||||
report.open (batch);
|
||||
}
|
||||
|
||||
,_destroy: function ()
|
||||
|
|
|
@ -66,7 +66,7 @@ Vn.Login = new Class
|
|||
|
||||
if (!success)
|
||||
{
|
||||
Htk.Toast.showError (_('InvalidLogin'));
|
||||
Htk.Toast.showError (_('Invalid login'));
|
||||
}
|
||||
else
|
||||
this.signalEmit ('login');
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
<div id="main" class="vn-login">
|
||||
<div class="header">
|
||||
<div>
|
||||
<a href="#!page=web&guest=true&form=cms/about"><t>IWantToKnowMore</t></a>
|
||||
<a href="#!page=web&guest=true&form=cms/about">
|
||||
<t>I want to know more</t>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="body">
|
||||
|
@ -25,14 +27,14 @@
|
|||
</div>
|
||||
<div class="bottom">
|
||||
<input type="checkbox" id="remember" name="remember"/>
|
||||
<label for="remember"><t>NotCloseSession</t></label>
|
||||
<label for="remember"><t>Do not sign out</t></label>
|
||||
</div>
|
||||
<div>
|
||||
<input id="submit" type="submit" value="_Enter"/>
|
||||
</div>
|
||||
<div class="info">
|
||||
<p><t>LoginMail</t></p>
|
||||
<p><t>LoginPhone</t></p>
|
||||
<p><t>Login mail</t></p>
|
||||
<p><t>Login phone</t></p>
|
||||
</div>
|
||||
<div class="links">
|
||||
<a target="_blank" href="http://verdnaturacomunicacion.blogspot.com.es/">
|
||||
|
|
|
@ -7,6 +7,7 @@ Vn.includeLib ('hedera',
|
|||
,'login'
|
||||
,'gui'
|
||||
,'module'
|
||||
,'form'
|
||||
,'report'
|
||||
,'app'
|
||||
,'tpv'
|
||||
|
|
|
@ -1,92 +1,96 @@
|
|||
|
||||
Vn.Module = new Class
|
||||
({
|
||||
Extends: Vn.Object
|
||||
basePath: null
|
||||
,path: null
|
||||
,moduleName: null
|
||||
,callbacks: []
|
||||
,localeReady: false
|
||||
,jsReady: false
|
||||
,uiReady: false
|
||||
,error: false
|
||||
,ready: false
|
||||
|
||||
,initialize: function (gui, formInfo)
|
||||
,initialize: function (basePath, path)
|
||||
{
|
||||
this.gui = gui;
|
||||
this.conn = gui.conn;
|
||||
this.hash = gui.hash;
|
||||
this.formInfo = formInfo;
|
||||
}
|
||||
var absPath = basePath +'/'+ path;
|
||||
|
||||
/**
|
||||
* Gets an object from the builder associated to this form.
|
||||
*
|
||||
* @param {string} objectId The object identifier
|
||||
* @return {Object} The object, or %null if not found
|
||||
**/
|
||||
,$: function (objectId)
|
||||
{
|
||||
if (this.builder)
|
||||
return this.builder.getById (objectId);
|
||||
|
||||
return null;
|
||||
}
|
||||
var aux = path.split ('/');
|
||||
var moduleName = aux[aux.length - 1];
|
||||
|
||||
/**
|
||||
* Called when the form is opened.
|
||||
**/
|
||||
,open: function ()
|
||||
{
|
||||
this.close ();
|
||||
|
||||
var builder = new Vn.Builder ();
|
||||
builder.signalData = this;
|
||||
builder.loadXml ('forms/'+ this.formInfo.path +'/ui.xml');
|
||||
Vn.Locale.load (absPath,
|
||||
this.onLocaleReady.bind (this));
|
||||
Vn.includeJs (absPath +'/'+ moduleName +'.js',
|
||||
this.onJsReady.bind (this));
|
||||
Vn.loadXml (absPath +'/ui.xml',
|
||||
this.onUiReady.bind (this));
|
||||
|
||||
var res = this.builder = builder.load ();
|
||||
this.node = res.$('form');
|
||||
|
||||
var models = res.getByTagName ('db-model');
|
||||
|
||||
for (var i = 0; i < models.length; i++)
|
||||
models[i].conn = this.conn;
|
||||
|
||||
var queries = res.getByTagName ('db-query');
|
||||
|
||||
for (var i = 0; i < queries.length; i++)
|
||||
queries[i].conn = this.conn;
|
||||
|
||||
this.gui.formHolder.appendChild (this.node);
|
||||
this.gui.setTitle (res.$('title'));
|
||||
this.gui.setActions (res.$('actions'));
|
||||
this.basePath = basePath;
|
||||
this.path = path;
|
||||
this.moduleName = moduleName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the form is activated.
|
||||
**/
|
||||
,activate: function () {}
|
||||
|
||||
/**
|
||||
* Called when the form is deactivated.
|
||||
**/
|
||||
,deactivate: function () {}
|
||||
|
||||
/**
|
||||
* Called when the form is closed.
|
||||
**/
|
||||
,close: function ()
|
||||
,addCallback: function (callback)
|
||||
{
|
||||
if (this.node)
|
||||
{
|
||||
this.gui.setTitle (null);
|
||||
this.gui.setActions (null);
|
||||
Vn.Node.remove (this.node);
|
||||
this.node = null;
|
||||
if (!this.ready)
|
||||
this.callbacks.push (callback);
|
||||
else
|
||||
callback (this);
|
||||
}
|
||||
|
||||
,onLocaleReady: function (success)
|
||||
{
|
||||
this.localeReady = true;
|
||||
this.onReady ();
|
||||
}
|
||||
|
||||
,onJsReady: function (success)
|
||||
{
|
||||
this.jsReady = true;
|
||||
this.error = !success;
|
||||
this.onReady ();
|
||||
}
|
||||
|
||||
,onUiReady: function (success)
|
||||
{
|
||||
this.uiReady = true;
|
||||
this.error = !success;
|
||||
this.onReady ();
|
||||
}
|
||||
|
||||
,onReady: function ()
|
||||
{
|
||||
if (!(this.localeReady && this.jsReady && this.uiReady))
|
||||
return;
|
||||
|
||||
this.ready = true;
|
||||
|
||||
var klassName = this.toCamelCase (this.moduleName);
|
||||
|
||||
try {
|
||||
this.klass = eval (klassName);
|
||||
}
|
||||
if (this.builder)
|
||||
catch (e)
|
||||
{
|
||||
this.builder.unref ();
|
||||
this.builder = null;
|
||||
this.error = true;
|
||||
console.error (e);
|
||||
}
|
||||
}
|
||||
|
||||
,_destroy: function ()
|
||||
var callbacks = this.callbacks;
|
||||
this.callbacks = null;
|
||||
|
||||
for (var i = 0; i < callbacks.length; i++)
|
||||
callbacks[i] (this);
|
||||
}
|
||||
|
||||
,toCamelCase: function (dashedName)
|
||||
{
|
||||
this.close ();
|
||||
this.parent ();
|
||||
var camelCase = 'Vn.'+ dashedName.charAt (0).toUpperCase ();
|
||||
camelCase += dashedName.substr (1).replace (/\w\-\w/g, function (token)
|
||||
{
|
||||
return token.charAt (0) + token.charAt (2).toUpperCase ();
|
||||
});
|
||||
return camelCase;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -3,7 +3,59 @@ Vn.Report = new Class
|
|||
({
|
||||
Extends: Vn.Object
|
||||
|
||||
,open: function () {}
|
||||
,initialize: function (moduleInfo, gui)
|
||||
{
|
||||
this.info = moduleInfo;
|
||||
this.gui = gui;
|
||||
this.conn = gui.conn;
|
||||
this.parent (null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an object from the builder associated to this report.
|
||||
*
|
||||
* @param {string} objectId The object identifier
|
||||
* @return {Object} The object, or %null if not found
|
||||
**/
|
||||
,$: function (objectId)
|
||||
{
|
||||
if (this.builderResult)
|
||||
return this.builderResult.getById (objectId);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
,open: function (batch)
|
||||
{
|
||||
this.batch = batch;
|
||||
this.createWindow (this._onWindowLoad.bind (this));
|
||||
}
|
||||
|
||||
,_onWindowLoad: function ()
|
||||
{
|
||||
this.doc = this.window.document
|
||||
|
||||
var path = this.info.path;
|
||||
|
||||
this.includeCss ('reports/'+ path +'/style.css');
|
||||
|
||||
var printButton = this.doc.createElement ('button');
|
||||
printButton.className = 'print-button';
|
||||
printButton.appendChild (this.doc.createTextNode (_('Print')));
|
||||
printButton.addEventListener ('click', this.print.bind (this));
|
||||
this.doc.body.appendChild (printButton);
|
||||
|
||||
var builder = new Vn.Builder ();
|
||||
builder.signalData = this;
|
||||
builder.add ('batch', this.batch);
|
||||
builder.add ('conn', this.conn);
|
||||
builder.loadXml ('reports/'+ path +'/ui.xml');
|
||||
|
||||
var res = this.builderResult = builder.load ();
|
||||
res.link ();
|
||||
|
||||
this.doc.body.appendChild (res.$('report'));
|
||||
}
|
||||
|
||||
,print: function ()
|
||||
{
|
||||
|
@ -26,9 +78,9 @@ Vn.Report = new Class
|
|||
head.appendChild (link);
|
||||
}
|
||||
|
||||
,createWindow: function (reportPath)
|
||||
,createWindow: function (callback)
|
||||
{
|
||||
var reportWindow = window.open (''/*'js/hedera/report.html'*/, '_blank'/*reportPath*/,
|
||||
var reportWindow = window.open ('js/hedera/report.html', '_blank'/*this.info.path*/,
|
||||
'resizable=yes,height=900,width=900,scrollbars=yes,menubar=false');
|
||||
|
||||
if (!reportWindow)
|
||||
|
@ -38,18 +90,8 @@ Vn.Report = new Class
|
|||
return null;
|
||||
}
|
||||
|
||||
reportWindow.addEventListener ('load', callback);
|
||||
this.window = reportWindow;
|
||||
this.doc = reportWindow.document
|
||||
|
||||
this.includeCss ('js/hedera/report.css');
|
||||
this.includeCss ('reports/'+ reportPath +'/style.css');
|
||||
|
||||
var printButton = this.doc.createElement ('button');
|
||||
printButton.className = 'print-button';
|
||||
printButton.appendChild (this.doc.createTextNode (_('Print')));
|
||||
printButton.addEventListener ('click', this.print.bind (this));
|
||||
this.doc.body.appendChild (printButton);
|
||||
|
||||
return reportWindow;
|
||||
}
|
||||
});
|
||||
|
|
|
@ -8,7 +8,7 @@ Htk.RadioGroup = new Class
|
|||
,initialize: function (props)
|
||||
{
|
||||
this.clear ();
|
||||
this.on ('changed', this.onRadioGroupChange, this);
|
||||
this.on ('changed', this._onRadioGroupChange, this);
|
||||
this.parent (props);
|
||||
}
|
||||
|
||||
|
@ -18,14 +18,14 @@ Htk.RadioGroup = new Class
|
|||
this.buttons = [];
|
||||
}
|
||||
|
||||
,onRadioGroupChange: function ()
|
||||
,_onRadioGroupChange: function ()
|
||||
{
|
||||
for (var i = 0; i < this.buttons.length; i++)
|
||||
if (this.buttons[i].value == this._value)
|
||||
this.buttons[i].checked = true;
|
||||
}
|
||||
|
||||
,onRadioChange: function (value)
|
||||
,_onRadioChange: function (value)
|
||||
{
|
||||
if (this.radioLock)
|
||||
return;
|
||||
|
@ -40,7 +40,7 @@ Htk.RadioGroup = new Class
|
|||
var radio = Vn.Browser.createRadio (this.name);
|
||||
radio.value = value;
|
||||
radio.checked = value == this.value;
|
||||
radio.addEventListener ('change', this.onRadioChange.bind (this, value));
|
||||
radio.addEventListener ('change', this._onRadioChange.bind (this, value));
|
||||
this.buttons.push (radio);
|
||||
|
||||
return radio;
|
||||
|
|
|
@ -18,9 +18,9 @@ Htk.Radio = new Class
|
|||
type: Htk.RadioGroup
|
||||
,set: function (x)
|
||||
{
|
||||
this.link ({_radioGroup: x}, {'changed': this.onRadioGroupChange});
|
||||
this.link ({_radioGroup: x}, {'changed': this._onRadioGroupChange});
|
||||
this.node.name = x.name
|
||||
this.onRadioGroupChange ();
|
||||
this._onRadioGroupChange ();
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
|
@ -35,19 +35,19 @@ Htk.Radio = new Class
|
|||
{
|
||||
var radio = Vn.Browser.createRadio ('');
|
||||
radio.checked = false;
|
||||
radio.addEventListener ('change', this.onChange.bind (this));
|
||||
radio.addEventListener ('change', this._onChange.bind (this));
|
||||
this.node = radio;
|
||||
|
||||
this.parent (props);
|
||||
}
|
||||
|
||||
,onChange: function ()
|
||||
,_onChange: function ()
|
||||
{
|
||||
if (this.node.checked && this._radioGroup)
|
||||
this._radioGroup.value = this.value;
|
||||
}
|
||||
|
||||
,onRadioGroupChange: function ()
|
||||
,_onRadioGroupChange: function ()
|
||||
{
|
||||
if (this._radioGroup.value && this._radioGroup.value == this.value)
|
||||
this.node.checked = true;
|
||||
|
|
|
@ -84,6 +84,21 @@ Htk.Select = new Class
|
|||
{
|
||||
return this._placeholder;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Wether to allow null values.
|
||||
**/
|
||||
notNull:
|
||||
{
|
||||
type: Boolean
|
||||
,set: function (x)
|
||||
{
|
||||
this._notNull = x;
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._notNull;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,6 +108,7 @@ Htk.Select = new Class
|
|||
,valueColumnName: null
|
||||
,showColumnIndex: 1
|
||||
,showColumnName: null
|
||||
,_notNull: true
|
||||
|
||||
,initialize: function (props)
|
||||
{
|
||||
|
@ -151,6 +167,8 @@ Htk.Select = new Class
|
|||
|
||||
if (this._placeholder)
|
||||
inc++;
|
||||
if (!this._notNull)
|
||||
inc++;
|
||||
|
||||
return inc;
|
||||
}
|
||||
|
@ -205,6 +223,9 @@ Htk.Select = new Class
|
|||
{
|
||||
var data = model.data;
|
||||
|
||||
if (!this.notNull)
|
||||
this.addOption (null, null);
|
||||
|
||||
for (var i = 0; i < data.length; i++)
|
||||
this.addOption (data[i][this.showColumnIndex], data[i][1]);
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
Htk.Grid = new Class
|
||||
({
|
||||
Extends: Htk.Widget
|
||||
|
@ -383,3 +384,4 @@ Htk.Grid = new Class
|
|||
this.onModelChange ();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -105,6 +105,7 @@ Htk.Repeater = new Class
|
|||
|
||||
this._builder.add (this._formId, form);
|
||||
var res = this._builder.load ();
|
||||
res.link ();
|
||||
|
||||
this._childsData.push ({
|
||||
builder: res,
|
||||
|
@ -156,7 +157,7 @@ Htk.Repeater = new Class
|
|||
,_showNoRecordsFound: function (count)
|
||||
{
|
||||
if (this._model.numRows === 0)
|
||||
this.showMessage (_('EmptyList'), 'clean.svg');
|
||||
this._showMessage (_('EmptyList'), 'clean.svg');
|
||||
}
|
||||
|
||||
,_showMessage: function (message, src)
|
||||
|
|
|
@ -29,6 +29,7 @@ Htk.Widget = new Class
|
|||
|
||||
var res = this.builder = builder.load ();
|
||||
this.node = res.$('main');
|
||||
res.link ();
|
||||
}
|
||||
|
||||
,createElement: function (tagName)
|
||||
|
|
|
@ -5,12 +5,27 @@ Sql.FilterItem = new Class
|
|||
({
|
||||
Extends: Sql.Operation
|
||||
,Tag: 'sql-filter-item'
|
||||
|
||||
,render: function (batch)
|
||||
,Properties:
|
||||
{
|
||||
if (!this.isReady ())
|
||||
return 'TRUE';
|
||||
disabled:
|
||||
{
|
||||
type: Boolean
|
||||
,set: function (x)
|
||||
{
|
||||
this._disabled = x;
|
||||
}
|
||||
,get: function ()
|
||||
{
|
||||
return this._disabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
,isReady: function ()
|
||||
{
|
||||
if (this._disabled)
|
||||
return false;
|
||||
|
||||
return this.parent (batch);
|
||||
return this.parent ();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -5,15 +5,43 @@ Sql.Filter = new Class
|
|||
({
|
||||
Extends: Sql.Operation
|
||||
,Tag: 'sql-filter'
|
||||
,Properties:
|
||||
{
|
||||
alwaysReady:
|
||||
{
|
||||
type: Boolean
|
||||
}
|
||||
}
|
||||
|
||||
,isReady: function ()
|
||||
{
|
||||
var e = this.exprs.getArray ();
|
||||
if (this.alwaysReady)
|
||||
return true;
|
||||
|
||||
var e = this.exprs.getArray ();
|
||||
for (var i = 0; i < e.length; i++)
|
||||
if (e[i].isReady ())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
,render: function (batch)
|
||||
{
|
||||
var isReady = false;
|
||||
var newOp = new Sql.Operation ({type: this.type});
|
||||
|
||||
var e = this.exprs.getArray ();
|
||||
for (var i = 0; i < e.length; i++)
|
||||
if (e[i].isReady ())
|
||||
{
|
||||
newOp.exprs.add (e[i]);
|
||||
isReady = true;
|
||||
}
|
||||
|
||||
if (!isReady)
|
||||
return 'TRUE';
|
||||
|
||||
return newOp.render (batch);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -25,7 +25,7 @@ Vn.Builder = new Class
|
|||
return result.objects[this._mainContext];
|
||||
}
|
||||
|
||||
,getById: function (objectId, result)
|
||||
,getById: function (result, objectId)
|
||||
{
|
||||
var index = this._contextMap[objectId];
|
||||
|
||||
|
@ -37,7 +37,7 @@ Vn.Builder = new Class
|
|||
return null;
|
||||
}
|
||||
|
||||
,getByTagName: function (tagName, result)
|
||||
,getByTagName: function (result, tagName)
|
||||
{
|
||||
var tags = this._tags[tagName];
|
||||
|
||||
|
@ -54,6 +54,13 @@ Vn.Builder = new Class
|
|||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Compiles an XML file.
|
||||
*
|
||||
* @path String The XML path
|
||||
* @dstDocument Document The document used to create the nodes
|
||||
* @return %true on success, %false othersise
|
||||
**/
|
||||
,loadXml: function (path, dstDocument)
|
||||
{
|
||||
var xmlDoc = Vn.getXml (path);
|
||||
|
@ -83,11 +90,19 @@ Vn.Builder = new Class
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compiles a single DOM node.
|
||||
*
|
||||
* @path Node The DOM node
|
||||
* @dstDocument Document The document used to create the nodes
|
||||
* @return %true on success, %false othersise
|
||||
**/
|
||||
,loadXmlFromNode: function (node, dstDocument)
|
||||
{
|
||||
this._compileInit (dstDocument);
|
||||
this._mainContext = this._compileNode (node).id;
|
||||
this._compileEnd ();
|
||||
return true;
|
||||
}
|
||||
|
||||
,load: function ()
|
||||
|
@ -111,7 +126,12 @@ Vn.Builder = new Class
|
|||
objects[i] = this.textInstantiate (context);
|
||||
}
|
||||
|
||||
var res = new BuilderResult (this, objects);
|
||||
return new BuilderResult (this, objects);
|
||||
}
|
||||
|
||||
,link: function (result)
|
||||
{
|
||||
var objects = result.objects;
|
||||
|
||||
for (var i = this._links.length - 1; i >= 0; i--)
|
||||
{
|
||||
|
@ -128,18 +148,17 @@ Vn.Builder = new Class
|
|||
l.objectId);
|
||||
}
|
||||
|
||||
for (var i = 0; i < len; i++)
|
||||
var contexts = this._contexts;
|
||||
for (var i = 0; i < contexts.length; i++)
|
||||
{
|
||||
var context = contexts[i];
|
||||
var object = objects[i];
|
||||
|
||||
if (context.tagName)
|
||||
this.elementLink (context, object, objects, res);
|
||||
this.elementLink (context, object, objects, result);
|
||||
else if (context.klass)
|
||||
this.objectLink (context, object, objects, res);
|
||||
this.objectLink (context, object, objects, result);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
,_compileInit: function (dstDocument)
|
||||
|
@ -160,7 +179,7 @@ Vn.Builder = new Class
|
|||
var l = this._links[i];
|
||||
var contextId = this._contextMap[l.objectId]
|
||||
|
||||
if (contextId)
|
||||
if (contextId != undefined)
|
||||
{
|
||||
if (l.prop)
|
||||
l.context.objectProps[l.prop] = contextId;
|
||||
|
@ -169,12 +188,18 @@ Vn.Builder = new Class
|
|||
|
||||
this._links.splice (i, 1);
|
||||
}
|
||||
else if (this._parentResult)
|
||||
else
|
||||
{
|
||||
var object = this._parentResult.getById (l.objectId);
|
||||
var object = this._addedMap[l.objectId];
|
||||
|
||||
if (!object && this._parentResult)
|
||||
object = this._parentResult.getById (l.objectId);
|
||||
|
||||
if (object)
|
||||
pl.context.props[pl.prop] = object;
|
||||
{
|
||||
l.context.props[l.prop] = object;
|
||||
this._links.splice (i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -305,7 +330,10 @@ Vn.Builder = new Class
|
|||
var prop = child.getAttribute ('property');
|
||||
|
||||
if (prop)
|
||||
{
|
||||
prop = prop.replace (/-./g, this._replaceFunc);
|
||||
objectProps[prop] = childContext.id;
|
||||
}
|
||||
else
|
||||
childs.push (childContext.id);
|
||||
}
|
||||
|
@ -345,7 +373,7 @@ Vn.Builder = new Class
|
|||
newValue = this._translateValue (value);
|
||||
break;
|
||||
case Function:
|
||||
newValue = this._getMethod (value);
|
||||
newValue = this._getMethod (value).bind (this.signalData);
|
||||
break;
|
||||
default:
|
||||
if (propInfo.enumType)
|
||||
|
@ -356,7 +384,7 @@ Vn.Builder = new Class
|
|||
if (newValue !== null && newValue !== undefined)
|
||||
props[propName] = newValue;
|
||||
else if (propInfo.type instanceof Function)
|
||||
this._addLink (context, attribute, value);
|
||||
this._addLink (context, propName, value);
|
||||
else
|
||||
this._showError ('Attribute \'%s\' invalid for tag \'%s\'',
|
||||
attribute, node.tagName);
|
||||
|
@ -364,11 +392,13 @@ Vn.Builder = new Class
|
|||
|
||||
,objectInstantiate: function (context)
|
||||
{
|
||||
return new context.klass (context.props);
|
||||
return new context.klass ();
|
||||
}
|
||||
|
||||
,objectLink: function (context, object, objects, res)
|
||||
{
|
||||
object.setProperties (context.props);
|
||||
|
||||
var objectProps = context.objectProps;
|
||||
for (var prop in objectProps)
|
||||
object[prop] = objects[objectProps[prop]];
|
||||
|
@ -379,8 +409,7 @@ Vn.Builder = new Class
|
|||
|
||||
var events = context.events;
|
||||
for (var event in events)
|
||||
object.on (event,
|
||||
events[event].bind (this.signalData));
|
||||
object.on (event, events[event], this.signalData);
|
||||
|
||||
if (context.custom)
|
||||
object.loadXml (res, context.custom);
|
||||
|
@ -442,8 +471,8 @@ Vn.Builder = new Class
|
|||
var child = objects[childs[i]];
|
||||
|
||||
if (child instanceof Htk.Widget)
|
||||
object.appendChild (child.getNode ());
|
||||
else if (child instanceof Node)
|
||||
child = child.getNode ();
|
||||
if (child instanceof Node)
|
||||
object.appendChild (child);
|
||||
}
|
||||
|
||||
|
@ -539,17 +568,22 @@ var BuilderResult = new Class
|
|||
|
||||
,$: function (objectId)
|
||||
{
|
||||
return this.builder.getById (objectId, this);
|
||||
return this.builder.getById (this, objectId);
|
||||
}
|
||||
|
||||
,getById: function (objectId)
|
||||
{
|
||||
return this.builder.getById (objectId, this);
|
||||
return this.builder.getById (this, objectId);
|
||||
}
|
||||
|
||||
,getByTagName: function (tagName)
|
||||
{
|
||||
return this.builder.getByTagName (tagName, this);
|
||||
return this.builder.getByTagName (this, tagName);
|
||||
}
|
||||
|
||||
,link: function ()
|
||||
{
|
||||
this.builder.link (this);
|
||||
}
|
||||
|
||||
,_destroy: function ()
|
||||
|
|
|
@ -12,6 +12,11 @@ Vn.Object = new Class
|
|||
,_signalData: null
|
||||
|
||||
,initialize: function (props)
|
||||
{
|
||||
this.setProperties (props);
|
||||
}
|
||||
|
||||
,setProperties: function (props)
|
||||
{
|
||||
for (var prop in props)
|
||||
this[prop] = props[prop];
|
||||
|
|
|
@ -119,7 +119,6 @@ var Vn =
|
|||
delete includeData.callbacks;
|
||||
delete includeData.dependants;
|
||||
delete includeData.depCount;
|
||||
delete includeData.loaded;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
Vn.Locale.add
|
||||
({
|
||||
"ConnError": "Error en la conexió"
|
||||
,"InternalError": "S'ha produït un error intern"
|
||||
,"BadServerReply": "Resposta del servidor incorrecta"
|
||||
,"ModelNotUpdatable": "Aquest model no és actualitzable"
|
||||
,"RowNotExists": "El registre no existeix o ha sigut esborrat"
|
||||
|
|
|
@ -3,25 +3,30 @@ Vn.Locale.add
|
|||
"User": "Usuari"
|
||||
,"Password": "Contrasenya"
|
||||
,"Beta": "Beta"
|
||||
,"NotCloseSession": "No tancar sessió"
|
||||
,"IWantToKnowMore": "Vull saber-ne més!"
|
||||
,"Do not sign out": "No tancar sessió"
|
||||
,"I want to know more": "Vull saber-ne més!"
|
||||
,"Enter": "Entrar"
|
||||
,"LoginMail": "clientes@verdnatura.es"
|
||||
,"LoginPhone": "+34 607 562 391"
|
||||
,"Login mail": "clientes@verdnatura.es"
|
||||
,"Login phone": "+34 607 562 391"
|
||||
|
||||
,"SessionExpired": "Has estat massa temps inactiu i la sessió ha expirat."
|
||||
,"InvalidLogin": "Usuari o contrasenya incorrectes. Recorda que s'hi distingeix entre majúscula i minúscula."
|
||||
,"You've been too idle": "Has estat massa temps inactiu i la sessió ha expirat."
|
||||
,"Invalid login": "Usuari o contrasenya incorrectes. Recorda que s'hi distingeix entre majúscula i minúscula."
|
||||
,"There was an internal error": "S'ha produït un error intern"
|
||||
|
||||
,"Menu": "Menú"
|
||||
,"Exit": "Sortir"
|
||||
,"TestTheNewWebsite": "Prova la nova web!"
|
||||
,"ReturnToOldWebsite": "Web antiga"
|
||||
,"ChangeLog": "Canvis recents"
|
||||
,"Print": "Imprimir"
|
||||
,"Test the new website": "Prova la nova web!"
|
||||
,"Old website": "Web antiga"
|
||||
,"Recent changes": "Canvis recents"
|
||||
|
||||
,"ErrorLoadingForm": "Error al carregar formulari"
|
||||
,"CookiesNotification": "En utilitzar aquest lloc web acceptes l'ús de cookies per a la personalització de continguts i anàlisi."
|
||||
,"NewVersionAvailable": "Hi ha una nova actualització, la pàgina recargargará automàticament per descarregar-la"
|
||||
,"Print": "Imprimir"
|
||||
,"Please unlock popups and try again":
|
||||
"Si us plau, desbloqueja els popups i torna-ho a intentar"
|
||||
|
||||
,"Error loading form": "Error al carregar formulari"
|
||||
,"Error loading report": "Error en carregar l'informe"
|
||||
,"By using this site you accept cookies": "En utilitzar aquest lloc web acceptes l'ús de cookies per a la personalització de continguts i anàlisi."
|
||||
,"New version available": "Hi ha una nova actualització, la pàgina recarregarà automàticament per descarregar-la"
|
||||
|
||||
,"AppName": "Verdnatura"
|
||||
|
||||
|
@ -42,6 +47,7 @@ Vn.Locale.add
|
|||
,"News": "Noticies"
|
||||
,"Photos": "Fotos"
|
||||
,"Shelves": "Estanterías"
|
||||
,"Items list": "Llistat articles"
|
||||
,"Contact": "Vull ser client"
|
||||
,"Training": "Formació"
|
||||
,"Agencies": "Agències"
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"Addresses": "Addresses"
|
||||
|
||||
,"Return": "Return"
|
||||
,"AddAddress": "Add address"
|
||||
|
||||
,"SetAsDefault": "Set as default"
|
||||
,"RemoveAddress": "Remove address"
|
||||
,"EditAddress": "Edit address"
|
||||
,"AreYouSureDeleteAddress": "Are you sure you want to delete the address?"
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"AddEditAddress": "Add or edit address"
|
||||
|
||||
,"Name": "Consignee"
|
||||
,"Address": "Address"
|
||||
,"City": "City"
|
||||
,"ZipCode": "Zip code"
|
||||
,"Country": "Country"
|
||||
,"Province": "Province"
|
||||
|
||||
,"Return": "Return"
|
||||
,"Accept": "Accept"
|
||||
|
||||
,"AddressChangedSuccessfully": "Address changed successfully"
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"Configuration": "Configuration"
|
||||
|
||||
,"UserNumber": "User number"
|
||||
,"UserName": "Username"
|
||||
,"Password": "Password"
|
||||
,"Email": "Email"
|
||||
,"Billing": "Billing"
|
||||
,"ReceiveInvoicesByEmail": "Receive invoices by email"
|
||||
|
||||
,"NewPassword": "New password"
|
||||
,"RepeatPassword": "Repeat password"
|
||||
|
||||
,"MustReloginIfChange": "To change your username you must login again"
|
||||
,"PasswordsChanged": "Password changed!"
|
||||
,"PasswordsDoesntMatch": "Passwords do not match!"
|
||||
|
||||
,"Addresses": "Addresses"
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"AccessLog": "Access log"
|
||||
|
||||
,"UserNumber:": "User Number:"
|
||||
,"User:": "User:"
|
||||
,"Phone:": "Phone:"
|
||||
,"Mobile:": "Mobile:"
|
||||
|
||||
,"Access": "Access"
|
||||
,"OS": "OS"
|
||||
,"Browser": "Browser"
|
||||
,"Version": "Version"
|
||||
,"Javascript": "Javascript"
|
||||
,"Cookies": "Cookies"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Item list": "Item list"
|
||||
|
||||
,"Store": "Store"
|
||||
,"Realm": "Realm"
|
||||
,"Rate": "Rate"
|
||||
|
||||
,"Preview": "Preview"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"ControlPanel": "Control panel"
|
||||
|
||||
,"Module": "Module"
|
||||
,"Description": "Description"
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"Photos": "Photos"
|
||||
|
||||
,"Schema": "Schema"
|
||||
,"ImageName": "Image name"
|
||||
,"Id": "Id"
|
||||
,"ImageFile": "Image file"
|
||||
|
||||
,"Upload": "Upload"
|
||||
|
||||
,"ImageUploaded": "Image uploaded successfully"
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"Configuration": "Configuration"
|
||||
,"Select config": "Select config"
|
||||
,"Reign": "Reign"
|
||||
,"Family": "Family"
|
||||
,"Store": "Store"
|
||||
,"Date": "Date"
|
||||
,"Shelf": "Shelf"
|
||||
,"Name prefix": "Name prefix"
|
||||
,"Limit amount per item": "Limit amount per item"
|
||||
,"Title": "Title"
|
||||
,"Show packing": "Show packing"
|
||||
,"Stack different items": "Stack different items"
|
||||
|
||||
,"Preview": "Preview"
|
||||
|
||||
,"Pallets": "Pallets"
|
||||
|
||||
,"No items found, check that all fields are correct":
|
||||
"No items found, check that all fields are correct"
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"UserManagement": "User management"
|
||||
|
||||
,"UserName:": "Username:"
|
||||
|
||||
,"UserNumber": "User number"
|
||||
,"UserName": "Username"
|
||||
,"Alias": "Alias"
|
||||
|
||||
,"AccessAsUser": "Impersonate user"
|
||||
,"AccessLog": "Access log"
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"Visits": "Visits"
|
||||
,"VisitsManagement": "Visits management"
|
||||
|
||||
,"ActiveSessions": "Active sessions"
|
||||
,"VisitsQuery": "Visits query"
|
||||
,"Refresh": "Refresh"
|
||||
|
||||
,"ActiveSessions:": "Active sessions:"
|
||||
,"NewVisitsTotal:": "New visits:"
|
||||
|
||||
,"SessionNumber": "Session number"
|
||||
,"User": "User"
|
||||
,"Login": "Login"
|
||||
,"LastActivity": "Last activity"
|
||||
,"SO": "OS"
|
||||
,"Version": "Version"
|
||||
,"NewVisit": "New visit"
|
||||
|
||||
,"SelectDateInterval": "Select date interval"
|
||||
,"FromDate:": "From date:"
|
||||
,"ToDate:": "To date:"
|
||||
,"VisitsTotal:": "Visits total:"
|
||||
|
||||
,"Browser": "Browser"
|
||||
,"MinVersion": "Minimal version"
|
||||
,"MaxVersion": "Maximum version"
|
||||
,"LastVisit": "Last visit"
|
||||
,"NewVisits": "New visits"
|
||||
,"%a, %e %b %Y at %T": "%a, %e %b %Y at %T"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"ListByAgency": "Bundles by agency"
|
||||
|
||||
,"ShowByProvince": "Show breakdown by province"
|
||||
,"Agency": "Agency"
|
||||
,"Exps": "Exps."
|
||||
,"Bundles": "Bundles"
|
||||
,"Prevision": "Prev."
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"ByProvince": "Breakdown by province"
|
||||
|
||||
,"Return": "Return"
|
||||
|
||||
,"SelectAgency": "Select an agency"
|
||||
,"Province": "Province"
|
||||
,"Expeditions": "Exps."
|
||||
,"Left": "Left"
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"QualityAndVariety": "Quality, variety and service"
|
||||
|
||||
,"MaximumFreshness": "Verdnatura offers a product guarantee maximum freshness thanks to their daily flowers and plants from Holland, South America, or from the same producer receptions."
|
||||
,"SquareMeters": "Over facilities 13,000m"
|
||||
,"AboutRealms": "With cut flowers, green, artificial and accessories"
|
||||
,"AboutLocation": "Settled in Valencia, Madrid, Barcelona, Holland and France, we offer direct sales in our facilities and distribution throughout Spain by own service or agency."
|
||||
,"PurchaseThroughWeb": "Purchase through our website and receive your order comfortably in your florist.In less than 24 hours!"
|
||||
|
||||
,"WhatMakeUsDifferent": "What makes us different?"
|
||||
|
||||
,"DesignVariety": "The variety in design, quality of materials used and our service delivery, will provide a showcase of dynamic genre, always fresh and appealing."
|
||||
,"AdaptToYourNeeds": "Verdnatura adapts to the needs of each customer by offering a wide range of products, always guaranteed."
|
||||
,"TheBestQuality": "The best quality at the best price. Without forgetting the design."
|
||||
|
||||
,"AtYourService": "We are at your service"
|
||||
|
||||
,"BuyersAndTraders": "9 specialized trade buyers and our 20 advise you on everything you need."
|
||||
|
||||
,"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."
|
||||
,"YoutubeChannel": "And do not miss Verdnatura videos on Youtube Channel. Where you'll find plenty of interesting tips on handling of the flower."
|
||||
|
||||
,"HowWeWork": "How we work?"
|
||||
|
||||
,"FirstQualityControl": "First quality control"
|
||||
,"SecondQualityControl": "Second quality control"
|
||||
,"ThirdQualityControl": "Third quality control"
|
||||
,"FourthQualityControl": "Fourth quality control"
|
||||
|
||||
,"AalsmeerAuction": "At 5: 00h, our purchasing managers acquire, in the auction of Aalsmeer and Noaldwijk, gender, the producer has reaped the previous day."
|
||||
,"BeforeAuction": "After purchase, the genre quickly enters Verdnatura Holland BV, our company Flora Holland in Aalsmeer."
|
||||
,"DirectlyFromProviders": "Besides buying through the Dutch auction, we buy directly from producers Colombia, Ecuador, Thailand, Malaysia, Africa and Australia. These products are directly supervised by our delegates Purchase located in each area. This merchandise will travel to Amsterdam, subjected to a process Vaacum and in less than two hours after landing, you will be at our facility in Aalsmeer."
|
||||
,"GoodsDischarge": "At 7: 00h our fellow Aalsmeer start receiving the purchased goods, having a first quality control, and creating it in stock. Now available for our customers on the web."
|
||||
,"GoodsTravel": "The goods travel for a day and a half trucks watertight compartments at different temperatures, so that the cold chain is not broken trip in the best conditions."
|
||||
,"GoodsReception": "Upon receipt of the merchandise responsible for the purchase reviewed state that arrives, accepting or rejecting it as appropriate, it discharged cold and quickly enters our camera."
|
||||
,"CustomerOrders": "Our customers can place their orders via the web, by phone or coming directly to our facilities. We have a team of specialized commercial advise you on your purchase and inform you the latest news and articles that may be of interest, so that your purchase meets your needs and stay totally satisfied."
|
||||
,"AfterOrder": "Once placed the order, turn to the production department. During the preparation of this new quality control (third) in which the poor will be discarded merchandise it is made."
|
||||
,"BuyerControl": "As the preparation is completed, a new control (fourth) where a specialist account is made and check the status of products. If they do not meet the quality standards required rejects and replaces the right."
|
||||
,"EmbeddedSection": "Then takes embedded section, where the order is suitable for proper delivery. Each type of delivery requires a method suitable for embedded gender protected books and reaches the customer in perfect condition."
|
||||
,"AfterEmbedAgency": "Once the product has been fitted it is stored again in the chamber until they leave by agency or own deal, receiving the customer within 24 hours in the case of the agency or the same day for the cast, comfortably at home ."
|
||||
,"FreshnessGuaranteed": "This way of working ensures freshness by rapid processes and maintaining the cold chain from purchase to receipt by our customer."
|
||||
|
||||
,"AboutSummary": "75 people spread over almost everybody so that our client has the broadest portfolio in the industry, coolest flower, plant newest, latest accessories, and fastest service possible."
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"IWantCustomer": "I want to be a customer!"
|
||||
|
||||
,"FillFormData": "Fill the form with your details and we will contact you soon."
|
||||
,"OrCallUs": "Or if you prefer, call us at 963 242 100."
|
||||
,"AllFieldsMandatory": "* All fields are mandatory."
|
||||
|
||||
,"Name": "Name"
|
||||
,"Surname": "Surname"
|
||||
,"EMail": "Email"
|
||||
,"Message": "Message"
|
||||
,"Address": "Address"
|
||||
,"PC": "Zip code"
|
||||
,"City": "City"
|
||||
,"Phone": "Phone"
|
||||
,"Send": "Send"
|
||||
|
||||
,"DataSentSuccess": "Your details have been sent successfully. Shortly we will contact you."
|
||||
,"ErrorSendingData": "Failed to send the data. Please check that you have filled in all the fields and you entered the anti-spam code correctly."
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"Sent": "Sent"
|
||||
,"Author": "Author"
|
||||
,"votes": "votes"
|
||||
,"NoAnswerSelected": "No answer selected"
|
||||
,"ThanksForVote": "Thanks for your vote!"
|
||||
,"Vote": "Vote"
|
||||
,"Total": "Total"
|
||||
,"BrownserRecommend":
|
||||
"Verdnatura recommend using the Mozilla Firefox web browser for full functionality of our website."
|
||||
,"PressHere": "Click here to download Firefox"
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"ShowMap": "Show map"
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
{}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"AboutCompany": "Why Verdnatura?"
|
||||
,"StorePhoto": "Store photo"
|
||||
|
||||
,"BecauseOurBigCatalog": "Because we have the largest catalog in the sector, renewed daily."
|
||||
,"BecauseThisWeb": "Because this website, with real time stock always at your disposal."
|
||||
,"BecauseOurShoppingDep": "For our purchasing department with 9 specialized buyers."
|
||||
,"BecauseOrderIsEasy": "Because it is very easy to place your order by web, phone or coming."
|
||||
,"BecauseOurPlant": "Because our premises, come and visit us. You'll love."
|
||||
,"BecauseOurSalesDep": "For our commercial department, with professionals who will always find a solution to your needs."
|
||||
,"BecauseOurWorkShop": "Because we have a sewing shop to help you."
|
||||
,"BecauseWeHaveWhatYouNeed": "Because we have what you need when you need it ..."
|
||||
|
||||
,"AboutDesc":
|
||||
"We are a company engaged in the wholesale and distribution of a wide range of accessories, greens and flowers to florists or other wholesalers."
|
||||
|
||||
,"AboutService":
|
||||
"We have home delivery service with our vehicles throughout the province of Valencia and limited areas of Castellón, Alicante, Murcia, Albacete and Madrid send the rest of the peninsula by transportation agencies with 24/48 hours service (Zeleris, via express) . We also do direct sales to florists in any of our facilities."
|
||||
|
||||
,"AboutDisp":
|
||||
"Our company has over 50 employees and several branches. The main is located in Valencia and has more than 8000 m2. We also have a warehouse located in Mercaflor - Mercavalencia (Valencia) that perform direct sales only."
|
||||
|
||||
,"AboutOrder":
|
||||
"You can make your orders and reservations by telephone at 96 324 21 00, online through our website or directly in our facilities."
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"ShoppingBasket": "Shopping basket"
|
||||
|
||||
,"Delete": "Delete order"
|
||||
,"GoToCatalog": "Go to catalog"
|
||||
,"ConfigureOrder": "Configure order"
|
||||
,"Checkout": "Checkout"
|
||||
|
||||
,"OrderNumber": "Order number"
|
||||
,"DateExit": "Shipping date"
|
||||
,"Warehouse": "Store"
|
||||
,"OrderTotal": "Total"
|
||||
|
||||
,"Amount": "Amount"
|
||||
,"Pack": "Pack"
|
||||
,"Stems": "Stems"
|
||||
,"Avail": "Avail"
|
||||
,"Item": "Item"
|
||||
,"Cat": "Cat"
|
||||
,"S1": "Siz"
|
||||
,"Color": "Color"
|
||||
,"Origin": "Origin"
|
||||
,"Price": "Price"
|
||||
,"Disc": "Desc"
|
||||
,"Subtotal": "Subtotal"
|
||||
|
||||
,"OrderItemsUpdated": "Your order takes too long and has been updated, prices or quantities of your items may have changed"
|
||||
,"RememberReconfiguringImpact": "Remember that if you reconfigure your order prices or quantities of your items may change"
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"Catalog": "Catalog"
|
||||
,"SearchResults": "Search results"
|
||||
|
||||
,"SelectFamily": "Select family"
|
||||
,"SelectSubtype": "Select a filter from the right menu"
|
||||
,"ArticleNotFound": "Item not found"
|
||||
,"ArticleNotAvailable": "Item not available"
|
||||
|
||||
,"Switch view": "Switch view"
|
||||
,"StartOrder": "Start order"
|
||||
,"ShoppingBasket": "Shopping basket"
|
||||
|
||||
,"Search": "Search"
|
||||
,"Order by": "Order by"
|
||||
,"Available": "Available"
|
||||
,"Size": "Size"
|
||||
,"Realm": "Realm"
|
||||
,"Family": "Family"
|
||||
,"Color": "Color"
|
||||
,"Producer": "Producer"
|
||||
,"Origin": "Origin"
|
||||
,"Category": "Category"
|
||||
,"Remove filters": "Remove filters"
|
||||
|
||||
,"Amount": "Amount"
|
||||
,"Aval": "Aval"
|
||||
,"Name": "Name"
|
||||
,"S1": "Siz"
|
||||
,"S2": "S2"
|
||||
,"Stems": "Stems"
|
||||
,"Cat": "Cat"
|
||||
,"Pack": "Pack"
|
||||
,"Origin": "Origin"
|
||||
,"Price": "Price"
|
||||
,"%.0d Units": "%.0d Units "
|
||||
|
||||
,"from": "from"
|
||||
,"from %.2d€": "from %.2d€"
|
||||
,"AddToBasket": "Add to basket"
|
||||
,"Add": "Add"
|
||||
,"Erase": "Remove"
|
||||
,"Confirm": "Confirm"
|
||||
|
||||
,"IndicativePhotos": "* Photos are indicative"
|
||||
|
||||
,"Added%dOf%s": "Added %d of %s"
|
||||
,"NoMoreAmountAvailable": "No more amount available"
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"ConfigureOrder": "Configure order"
|
||||
|
||||
,"Cancel": "Cancel"
|
||||
,"Next": "Next"
|
||||
|
||||
,"DeliveryOrPickupQuestion": "Do you want to receive or pickup the order?"
|
||||
,"ReceiveThroughtAgency": "Receive by agency"
|
||||
,"ReceiveThroughtRoute": "Verdnatura delivery"
|
||||
,"PickupInStore": "Store pickup"
|
||||
|
||||
,"OrderDateDeliveryQuestion": "What day you want to receive the order?"
|
||||
,"OrderDatePickupQuestion": "What day you want to pickup your order?"
|
||||
,"AddressQuestion": "Where do you want to receive the order?"
|
||||
,"AgencyQuestion": "By wich agency you want to receive the order?"
|
||||
,"PickupWarehouseQuestion": "What store you want to pickup your order?"
|
||||
|
||||
,"ConfirmToAccessCatalog": "Confirm the data to access the catalog"
|
||||
,"Arrival": "Arrival"
|
||||
,"Pickup": "Pickup"
|
||||
,"%A, %e of %B": "%A, %e of %B"
|
||||
,"Agency": "Agency"
|
||||
,"Warehouse": "Store"
|
||||
,"Confirm": "Confirm"
|
||||
|
||||
,"OrderStarted": "Order started"
|
||||
,"OrderUpdated": "Order updated"
|
||||
|
||||
,"NoAgeciesAvailableForDate": "No agencies available for the selected date and consignee, change the shipping date of your order"
|
||||
,"NoWarehousesAvailableForDate": "No stores available for the selected date, change the pickup date of you order"
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"Checkout": "Checkout"
|
||||
|
||||
,"OrderSummary": "Order summary"
|
||||
,"Arrival": "Arrival"
|
||||
,"%A, %e of %B": "%A, %e of %B"
|
||||
,"Agency": "Agency"
|
||||
,"Warehouse": "Store"
|
||||
|
||||
,"DeliveryAddress": "Delivery address"
|
||||
|
||||
,"Import": "Import"
|
||||
,"TaxBase": "Tax base"
|
||||
,"VAT": "VAT"
|
||||
,"Total": "Total"
|
||||
|
||||
,"Cancel": "Cancel"
|
||||
,"Modify": "Modify"
|
||||
,"Confirm": "Confirm"
|
||||
|
||||
,"OrderPlacedSuccessfully": "Your order has been successfully completed"
|
||||
,"OrderReserved": "We've booked your order but it seems that there have been problems with payment. Contact your sales."
|
||||
,"Accept": "Accept"
|
||||
,"PayNow": "Pay now"
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"Invoices": "Invoices"
|
||||
|
||||
,"Serial": "Serial"
|
||||
,"Date": "Date"
|
||||
,"Import": "Import"
|
||||
,"Download PDF": "Download PDF"
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"OpenOrders": "Open orders"
|
||||
|
||||
,"StartOrder": "Start order"
|
||||
,"ContinueOrder": "Continue order"
|
||||
,"OrderNumber": "Order number"
|
||||
,"DateMake": "Creation date"
|
||||
,"DateExit": "Shipping date"
|
||||
,"SendMethod": "Delivery method"
|
||||
|
||||
,"LastOrders": "Last orders"
|
||||
|
||||
,"PendingBalance:": "Pending balance:"
|
||||
,"PaymentInfo": "To make a down payment click the right button and make the payment on the relevant company. The amount shown is the outstanding balance today, it does not take into account future orders. You can make a down payment on the amount you want."
|
||||
,"MakePayment": "Make payment"
|
||||
,"Company": "Company"
|
||||
,"Pending": "Pending"
|
||||
,"Pay": "Pay"
|
||||
,"Basket": "Basket"
|
||||
,"ShoppingBasket": "Shopping basket"
|
||||
|
||||
,"SeeOrder": "Show details of the order"
|
||||
,"TicketNumber": "Ticket number"
|
||||
,"SentAddress": "Delivery address"
|
||||
,"Consignee": "Consignee"
|
||||
,"Boxes": "Bundles"
|
||||
,"TotalWithVAT": "Total with VAT"
|
||||
,"Pending": "Pending"
|
||||
,"PayOrder": "Pay order"
|
||||
|
||||
,"AmountToPay:": "Amount to pay (€):"
|
||||
,"AmountError": "The amount must be a positive number less than or equal to the outstanding amount"
|
||||
,"PayError": "Failed to make the payment"
|
||||
|
||||
,"%A, %e of %B": "%A, %e of %B"
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"OrderDetail": "Order detail"
|
||||
|
||||
,"Print": "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"
|
||||
|
||||
,"ItemNumber": "Item number"
|
||||
,"Amount": "Amount"
|
||||
,"Item": "Item"
|
||||
,"Category": "Category"
|
||||
,"S1": "Siz"
|
||||
,"Stems": "Stems"
|
||||
,"Color": "Color"
|
||||
,"Origin": "Origin"
|
||||
,"Price": "Price"
|
||||
,"Disc": "Disc"
|
||||
,"Subtotal": "Subtotal"
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"AddEditNew": "Add or edit new"
|
||||
|
||||
,"Title": "Title"
|
||||
,"NewBody": "New body"
|
||||
,"Tag": "Tag"
|
||||
|
||||
,"Return": "Return"
|
||||
,"Accept": "Accept"
|
||||
|
||||
,"NewChangedSuccessfully": "New changed successfully"
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"NewsManagement": "News management"
|
||||
|
||||
,"AddNew": "Add new"
|
||||
,"EditNew": "Edit new"
|
||||
|
||||
,"NewNum": "New number"
|
||||
,"Date": "Date"
|
||||
,"Author": "Author"
|
||||
,"Title": "Title"
|
||||
,"Priority": "Priority"
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
Vn.Locale.add
|
||||
({
|
||||
"ConnError": "Connection failed"
|
||||
,"BadServerReply": "Bad server reply"
|
||||
,"ModelNotUpdatable": "Model not updatable"
|
||||
,"RowNotExists": "The record does not exist or has been deleted"
|
||||
,"ColNotExists": "The column does not exist"
|
||||
});
|
|
@ -0,0 +1,57 @@
|
|||
Vn.Locale.add
|
||||
({
|
||||
"User": "User"
|
||||
,"Password": "Password"
|
||||
,"Beta": "Beta"
|
||||
,"Do not sign out": "Do not sign out"
|
||||
,"I want to know more": "I want to know more"
|
||||
,"Enter": "Enter"
|
||||
,"Login mail": "clientes@verdnatura.es"
|
||||
,"Login phone": "+34 607 562 391"
|
||||
|
||||
,"You've been too idle": "You've been too idle and session time has expired."
|
||||
,"Invalid login": "Username or password incorrect. Remember that case-sensitive."
|
||||
,"There was an internal error": "There was an internal error"
|
||||
|
||||
,"Menu": "Menu"
|
||||
,"Exit": "Exit"
|
||||
,"Test the new website": "Test the new website!"
|
||||
,"Old website": "Old website"
|
||||
,"Recent changes": "Recent changes"
|
||||
|
||||
,"Print": "Print"
|
||||
,"Please unlock popups and try again":
|
||||
"Please unlock popups and try again"
|
||||
|
||||
,"Error loading form": "Error while loading form"
|
||||
,"Error loading report": "Error loading report"
|
||||
,"By using this site you accept cookies": "By using this website you accept the use of cookies for customization of content and analysis."
|
||||
,"New version available": "There is a new update, the page will automatically recharge to download it"
|
||||
|
||||
,"AppName": "Verdnatura"
|
||||
|
||||
,"Home": "Home"
|
||||
,"Orders": "Orders"
|
||||
,"Basket": "Basket"
|
||||
,"Last orders": "Last orders"
|
||||
,"Invoices": "Invoices"
|
||||
,"Catalog": "Catalog"
|
||||
,"About": "About"
|
||||
,"About us": "About us"
|
||||
,"Why": "Why"
|
||||
,"Location": "Location"
|
||||
,"Administration": "Administration"
|
||||
,"Control panel": "Control panel"
|
||||
,"Users": "Users"
|
||||
,"Visits": "Visits"
|
||||
,"News": "News"
|
||||
,"Photos": "Photos"
|
||||
,"Shelves": "Shelves"
|
||||
,"Items list": "Items list"
|
||||
,"Contact": "Contact"
|
||||
,"Training": "Training"
|
||||
,"Agencies": "Agencies"
|
||||
,"Configuration": "Configuration"
|
||||
,"Account": "Account"
|
||||
,"Addresses": "Addresses"
|
||||
});
|
|
@ -0,0 +1,29 @@
|
|||
Vn.Locale.add
|
||||
({
|
||||
"True": "True"
|
||||
,"False": "False"
|
||||
,"Null": "Null"
|
||||
,"ChangeDate": "Change date"
|
||||
,"Sort": "Sort"
|
||||
,"At": "at"
|
||||
,"Of": "of"
|
||||
,"OfThe": "of the"
|
||||
,"Remove": "Remove"
|
||||
,"Loading": "Loading"
|
||||
,"Loading...": "Loading..."
|
||||
,"ReallyDelete": "Are you sure you want to delete the line?"
|
||||
,"YouMustBeLoggedIn": "You must be a registered user"
|
||||
,"EmptyList": "Empty list"
|
||||
,"NoData": "No data"
|
||||
,"ErrorLoadingData": "Error"
|
||||
,"Error": "Error"
|
||||
,"Image": "Image"
|
||||
,"File": "File"
|
||||
,"FileName": "File name"
|
||||
,"UpdateImage": "Add or update an image"
|
||||
,"UploadFile": "Upload file"
|
||||
,"ImageAdded": "Image added successfully"
|
||||
,"Close": "Close"
|
||||
,"Previous": "Previous"
|
||||
,"Next": "Next"
|
||||
});
|
|
@ -0,0 +1,44 @@
|
|||
Vn.Locale.add
|
||||
({
|
||||
"Sunday": "Sunday"
|
||||
,"Monday": "Monday"
|
||||
,"Tuesday": "Tuesday"
|
||||
,"Wednesday": "Wednesday"
|
||||
,"Thursday": "Thursday"
|
||||
,"Friday": "Friday"
|
||||
,"Saturday": "Saturday"
|
||||
|
||||
,"Su": "Su"
|
||||
,"Mo": "Mo"
|
||||
,"Tu": "Tu"
|
||||
,"We": "We"
|
||||
,"Th": "Th"
|
||||
,"Fr": "Fr"
|
||||
,"Sa": "Sa"
|
||||
|
||||
,"January": "January"
|
||||
,"February": "February"
|
||||
,"March": "March"
|
||||
,"April": "April"
|
||||
,"May": "May"
|
||||
,"June": "June"
|
||||
,"July": "June"
|
||||
,"August": "August"
|
||||
,"September": "September"
|
||||
,"October": "October"
|
||||
,"November": "November"
|
||||
,"December": "December"
|
||||
|
||||
,"Jan": "Jan"
|
||||
,"Feb": "Feb"
|
||||
,"Mar": "Mar"
|
||||
,"Apr": "Apr"
|
||||
,"May": "May"
|
||||
,"Jun": "Jun"
|
||||
,"Jul": "Jul"
|
||||
,"Ago": "Ago"
|
||||
,"Sep": "Sep"
|
||||
,"Oct": "Oct"
|
||||
,"Nov": "Nov"
|
||||
,"Dec": "Dic"
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"PaymentComplete": "Payment completed, you can return to our website."
|
||||
,"ReturnToWeb": "Back to Verdnatura"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"UpdateYourBrowser": "Upgrade your browser"
|
||||
,"ContinueAnyway": "Continue anyway"
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"Welcome to Verdnatura, where are you going?": "Welcome to Verdnatura, where are you going?"
|
||||
|
||||
,"New website": "New website"
|
||||
,"(Fantastic)": "(Fantastic)"
|
||||
,"Old website": "Old website"
|
||||
,"(Best choose new)": "(Best choose new)"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"InvalidAction": "Invalid action"
|
||||
|
||||
,"EmptyQuery": "Empty query"
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue