From 30e44654b09b1f98acf1d5273ae71bc3ac384330 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 10 Dec 2015 14:48:43 +0100 Subject: [PATCH] Release beta, errores solucionados --- lib/vn/hedera/web.php | 3 +- web/forms/account/address/ui.xml | 8 +- web/forms/cms/about/style.css | 61 +++++++--- web/forms/cms/about/ui.xml | 46 ++++--- web/forms/cms/contact/send-data.php | 2 +- web/forms/cms/home/home.js | 5 + web/forms/cms/home/ui.xml | 13 +- web/forms/ecomerce/basket/basket.js | 14 +-- web/forms/ecomerce/catalog/catalog.js | 117 ++++++++++-------- web/forms/ecomerce/catalog/style.css | 141 +++++++++------------- web/forms/ecomerce/catalog/ui.xml | 70 +++++------ web/forms/ecomerce/checkout/checkout.js | 11 ++ web/forms/ecomerce/checkout/ui.xml | 6 +- web/forms/ecomerce/confirm/confirm.js | 15 +++ web/forms/ecomerce/ticket/ui.xml | 5 +- web/forms/news/new/new.js | 5 + web/forms/news/new/ui.xml | 5 +- web/forms/news/news/style.css | 2 +- web/forms/news/news/ui.xml | 16 --- web/image/add-photo.svg | 77 ++++++++++++ web/image/dark/new-order.svg | 65 ++++++++++ web/image/empty.png | Bin 817 -> 0 bytes web/image/firefox.png | Bin 5406 -> 0 bytes web/image/new-order.svg | 65 ++++++++++ web/image/unavailable.svg | 18 +-- web/image/unknown.svg | 16 +-- web/image/warning.svg | 10 +- web/js/db/conn.js | 4 +- web/js/db/param.js | 11 +- web/js/hedera/app.js | 124 +++++++++++++++---- web/js/hedera/form.js | 87 ++++++++----- web/js/hedera/gui.css | 6 +- web/js/hedera/gui.js | 19 +-- web/js/hedera/login.css | 28 ++++- web/js/hedera/login.js | 64 ++++++---- web/js/hedera/login.xml | 7 +- web/js/hedera/style.css | 34 +++--- web/js/htk/column/image.js | 46 +++---- web/js/htk/field/date-chooser.js | 25 ++-- web/js/htk/field/image.js | 103 ++++++++++------ web/js/htk/field/select.js | 69 +++++++---- web/js/htk/image-editor.js | 7 +- web/js/htk/style.css | 18 ++- web/js/misc/main.js | 1 - web/js/vn/hash-param.js | 61 ++++++++-- web/js/vn/hash.js | 6 +- web/js/vn/vn.js | 2 + web/locale/ca/forms/cms/about.json | 2 +- web/locale/ca/forms/cms/home.json | 4 +- web/locale/ca/forms/ecomerce/catalog.json | 23 ++-- web/locale/ca/forms/ecomerce/orders.json | 1 + web/locale/ca/forms/ecomerce/ticket.json | 17 +-- web/locale/en/forms/cms/about.json | 2 +- web/locale/en/forms/cms/home.json | 4 +- web/locale/en/forms/ecomerce/catalog.json | 5 +- web/locale/en/forms/ecomerce/orders.json | 1 + web/locale/en/forms/ecomerce/ticket.json | 17 +-- web/locale/es/forms/cms/about.json | 2 +- web/locale/es/forms/cms/home.json | 4 +- web/locale/es/forms/ecomerce/catalog.json | 5 +- web/locale/es/forms/ecomerce/orders.json | 1 + web/locale/es/forms/ecomerce/ticket.json | 17 +-- web/locale/fr/forms/cms/about.json | 2 +- web/locale/fr/forms/cms/home.json | 4 +- web/locale/fr/forms/ecomerce/catalog.json | 21 +++- web/locale/fr/forms/ecomerce/orders.json | 1 + web/locale/fr/forms/ecomerce/ticket.json | 17 +-- web/locale/mn/forms/cms/about.json | 2 +- web/locale/mn/forms/cms/home.json | 4 +- web/locale/mn/forms/ecomerce/catalog.json | 5 +- web/locale/mn/forms/ecomerce/orders.json | 1 + web/locale/mn/forms/ecomerce/ticket.json | 17 +-- web/locale/pt/forms/cms/about.json | 2 +- web/locale/pt/forms/cms/home.json | 4 +- web/locale/pt/forms/ecomerce/catalog.json | 1 + web/locale/pt/forms/ecomerce/orders.json | 1 + web/locale/pt/forms/ecomerce/ticket.json | 17 +-- 77 files changed, 1122 insertions(+), 600 deletions(-) create mode 100644 web/image/add-photo.svg create mode 100644 web/image/dark/new-order.svg delete mode 100644 web/image/empty.png delete mode 100755 web/image/firefox.png create mode 100644 web/image/new-order.svg diff --git a/lib/vn/hedera/web.php b/lib/vn/hedera/web.php index 0b7cca4d..b66c02a7 100755 --- a/lib/vn/hedera/web.php +++ b/lib/vn/hedera/web.php @@ -117,8 +117,9 @@ class Web $useCookies = TRUE; $success = TRUE; - if (isset ($_GET['guest'])) + if (isset ($_POST['guest'])) { + self::sysInit (); $row = self::$sysConn->getRow ( 'SELECT guest_user, guest_pass FROM config'); diff --git a/web/forms/account/address/ui.xml b/web/forms/account/address/ui.xml index e1819806..3a1d8ce6 100755 --- a/web/forms/account/address/ui.xml +++ b/web/forms/account/address/ui.xml @@ -3,7 +3,12 @@ - + SELECT a.id, a.name, a.consignee, a.city, a.zip_code, a.province_id, c.Id country_id FROM address_view a @@ -57,6 +62,7 @@ About
-
-
-
-

QualityAndVariety

-
+
+
+

+ QualityAndVariety +

MaximumFreshness

SquareMeters

store @@ -20,26 +20,26 @@

palletizing
-
-
-

WhatMakeUsDifferent

-
+
+

+ WhatMakeUsDifferent +

DesignVariety

differentiates_us

AdaptToYourNeeds

TheBestQuality

-
-
-

AtYourService

-
+
+

+ AtYourService +

BuyersAndTraders

commercial
-
-
-

Training

-
+
+

+ Verdnatura training +

GoodTraining

training

SpecialTrainingPrices

@@ -47,10 +47,10 @@

YoutubeChannel

youtube
-
-
-

HowWeWork

-
+
+

+ HowWeWork +

AalsmeerAuction

auction

BeforeAuction

@@ -88,9 +88,7 @@

AfterEmbedAgency

agencies

FreshnessGuaranteed

-
-
-

+

AboutSummary Verdnatura

diff --git a/web/forms/cms/contact/send-data.php b/web/forms/cms/contact/send-data.php index 8dce55e8..42b1b9e7 100755 --- a/web/forms/cms/contact/send-data.php +++ b/web/forms/cms/contact/send-data.php @@ -26,7 +26,7 @@ header ('Content-Type: application/json'); if ($paramsOk && isset ($_SESSION['captcha']) && $_POST['captcha'] == $_SESSION['captcha']) { - mail ('nuria@verdnatura.es', 'Verdnatura', print_r ($_POST, TRUE), + mail ('comunicacion@verdnatura.es', 'Verdnatura', print_r ($_POST, TRUE), 'From: Verdnatura '); echo json_encode (TRUE); diff --git a/web/forms/cms/home/home.js b/web/forms/cms/home/home.js index 135d826e..2306c4c6 100755 --- a/web/forms/cms/home/home.js +++ b/web/forms/cms/home/home.js @@ -2,5 +2,10 @@ Vn.Home = new Class ({ Extends: Vn.Form + + ,onStartOrderClick: function () + { + this.hash.set ({'form': 'ecomerce/catalog'}); + } }); diff --git a/web/forms/cms/home/ui.xml b/web/forms/cms/home/ui.xml index 9aedd6fa..fae1dc95 100755 --- a/web/forms/cms/home/ui.xml +++ b/web/forms/cms/home/ui.xml @@ -2,8 +2,15 @@

Home

+
+ +
-
+
@@ -24,11 +31,11 @@
- +
-
+
diff --git a/web/forms/ecomerce/basket/basket.js b/web/forms/ecomerce/basket/basket.js index bf99b7e2..02785f37 100755 --- a/web/forms/ecomerce/basket/basket.js +++ b/web/forms/ecomerce/basket/basket.js @@ -5,23 +5,17 @@ Vn.Basket = new Class ,open: function () { - if (this.basketChecked) - this.parent (); - } + this.close (); + this.isOpen = true; - ,activate: function () - { Vn.BasketChecker.check (this.conn, this.onBasketCheck.bind (this)); } ,onBasketCheck: function (isOk) { - if (!isOk) - return; - - this.basketChecked = true; - this.open (); + if (isOk) + this.loadUi (); } ,onConfigureClick: function () diff --git a/web/forms/ecomerce/catalog/catalog.js b/web/forms/ecomerce/catalog/catalog.js index 220ef287..569a0cde 100755 --- a/web/forms/ecomerce/catalog/catalog.js +++ b/web/forms/ecomerce/catalog/catalog.js @@ -7,13 +7,10 @@ Vn.Catalog = new Class ,open: function () { - if (this.basketChecked) - this.parent (); - } + this.close (); + this.isOpen = true; - ,activate: function () - { - if (!Vn.Url.getQuery ('guest')) + if (!Vn.Cookie.check ('hedera_guest')) { Vn.BasketChecker.check (this.conn, this.onBasketCheck.bind (this)); @@ -21,46 +18,41 @@ Vn.Catalog = new Class else { var query = 'CALL basket_configure_for_guest ()'; - this.conn.execQuery (query, this.onBasketForGuest.bind (this)); + this.conn.execQuery (query, this.loadUi.bind (this)); } } - - ,close: function () - { - if (this.node) - { - this.gui.$('top-bar').style.backgroundColor = ''; - Vn.Node.remove (this.$('right-panel')); - } - - this.parent (); - } - - ,onBasketForGuest: function () - { - this.onBasketCheck (true); - } ,onBasketCheck: function (isOk) { - if (!isOk) - return; + if (isOk) + this.loadUi (); + } - this.basketChecked = true; - this.open (); - + ,activate: function () + { document.body.appendChild (this.$('right-panel')); this.popup = new Htk.Popup (); this.popup.setChildNode (this.$('lots-popup')); this.$('items-model').setInfo ('a', 'Articles', 'vn2008', ['Id_Article']); - this.setView ('GRID'); + + if (Vn.Cookie.check ('hedera_view')) + this.setView (Vn.Cookie.getInt ('hedera_view')); + else + this.setView (Vn.Catalog.View.GRID); + } + + ,deactivate: function () + { + this.gui.$('top-bar').style.backgroundColor = ''; + Vn.Node.remove (this.$('right-panel')); } ,onSwitchViewClick: function () { - this.setView (this.view == 'LIST' ? 'GRID' : 'LIST'); + this.setView (this.view === Vn.Catalog.View.LIST ? + Vn.Catalog.View.GRID : Vn.Catalog.View.LIST); } ,setView: function (view) @@ -71,21 +63,30 @@ Vn.Catalog = new Class this.viewHolder.model = null; } - if (view == 'GRID') + if (view === Vn.Catalog.View.GRID) { - this.view = 'GRID'; + this.view = Vn.Catalog.View.GRID; this.viewNode = this.$('grid-view').getNode (); this.viewHolder = this.$('grid-view'); } else { - this.view = 'LIST'; + this.view = Vn.Catalog.View.LIST; this.viewNode = this.$('list-view'); this.viewHolder = this.$('items-grid'); } this.$('main').appendChild (this.viewNode); this.viewHolder.model = this.$('items-model'); + Vn.Cookie.set ('hedera_view', this.view) + } + + ,onBasketReady: function (form) + { + if (form.get ('method') != 'PICKUP') + Vn.Node.setText (this.$('method'), _('Agency')); + else + Vn.Node.setText (this.$('method'), _('Warehouse')); } ,typeRenderer: function (builder, form) @@ -110,22 +111,25 @@ Vn.Catalog = new Class ,onTypeChange: function () { - if (this._menuShown && this.$('type').value) + if (this.$('type').value) this.hideMenu (); + this.refreshTitle (); + } + + ,refreshTitleColor: function () + { var realms = this.$('realms-model'); - return; - + if (!realms.ready) return; - - this.refreshTitle (); var color = null; + var realm = this.$('realm').value; - if (this.$('type').value) + if (realm) { - var row = realms.search ('id', this.$('realm').value); + var row = realms.search ('id', realm); if (row != -1) color = '#'+ realms.get (row, 'color'); @@ -134,7 +138,7 @@ Vn.Catalog = new Class this.gui.$('top-bar').style.backgroundColor = color; } - ,refreshTitle: function (title) + ,refreshTitle: function () { var types = this.$('types-model'); @@ -142,16 +146,15 @@ Vn.Catalog = new Class return; var title = _('Catalog'); + var type = this.$('type').value; - if (this.$('type').value) + if (type) { - var row = types.search ('tipo_id', this.$('type').value); + var row = types.search ('tipo_id', type); if (row != -1) - title = types.get (row, 'Tipo'); + title = types.get (row, 'name'); } - else if (this.$('search').value) - title = _('SearchResults'); Vn.Node.setText (this.$('title-text'), title); } @@ -184,12 +187,20 @@ Vn.Catalog = new Class ,onBasketClick: function () { - if (!Vn.Url.getQuery ('guest')) + if (!Vn.Cookie.check ('hedera_guest')) this.hash.set ({'form': 'ecomerce/basket'}); else Htk.Toast.showError (_('YouMustBeLoggedIn')); } + ,onConfigureClick: function () + { + if (!Vn.Cookie.check ('hedera_guest')) + this.hash.set ({'form': 'ecomerce/checkout'}); + else + Htk.Toast.showError (_('YouMustBeLoggedIn')); + } + ,nameRenderer: function (renderer, form) { renderer.subtitle = form.get ('producer'); @@ -256,7 +267,7 @@ Vn.Catalog = new Class ,showAmountPopup: function (button, row) { - if (Vn.Url.getQuery ('guest')) + if (Vn.Cookie.check ('hedera_guest')) { Htk.Toast.showError (_('YouMustBeLoggedIn')); return; @@ -562,6 +573,14 @@ Vn.Filter = new Class this._label.nodeValue = _('Loading...'); } } +}) + +Vn.Catalog.extend +({ + View: { + LIST: 0, + GRID: 1 + } }); Vn.ColumnItem = new Class @@ -589,5 +608,5 @@ Vn.ColumnItem = new Class return td; } -}); +}) diff --git a/web/forms/ecomerce/catalog/style.css b/web/forms/ecomerce/catalog/style.css index 1405c631..25cf129b 100755 --- a/web/forms/ecomerce/catalog/style.css +++ b/web/forms/ecomerce/catalog/style.css @@ -36,16 +36,11 @@ .catalog-actions > .htk-search-entry { margin-top: .8em; + margin-right: .4em; } /* Right panel */ -.right-panel > .body -{ - text-align: center; - padding: 1em; - overflow: auto; -} .right-panel { position: absolute; @@ -54,31 +49,68 @@ right: 0; width: 17em; background-color: white; - box-shadow: 0 0.2em 0.2em #AAA; + box-shadow: 0 0.2em 0.2em rgba(1, 1, 1, 0.4); + overflow: auto; +} +.right-panel > .body +{ + text-align: center; +} +.right-panel .section +{ + padding: 1.2em 2em; +} +.right-panel .section > button +{ + display: block; + margin: 0 auto; + margin-top: .4em; +} +.right-panel .basket-info +{ + background-color: #00acc1; + color: white; + box-shadow: 0 0.1em 0.1em rgba(1, 1, 1, 0.3); +} +.right-panel .basket-info > button +{ + color: #e0f2f1; +} +.right-panel .basket-info > p +{ + margin: 0; + padding: .4em 0; + font-size: 1.1em; + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.right-panel .filters +{ +} +.right-panel .section > select, +.right-panel .section > .vn-filter +{ + margin-bottom: 1em; } .right-panel select { - margin: .8em auto; - width: 12em; -/* color: #333; - background-color: #EEE; - border: 0;*/ + margin: 0 auto; + width: 100%; } -option.placeholder -{ - color: #999; -} - -.vn-filter ul +.vn-filter > ul { margin: 0; list-style-type: none; text-align: left; color: #666; - padding-left: 2em; + padding-left: 1.5em; } .vn-filter li { + margin: 0; + margin-top: .4em; line-height: 2em; text-overflow: ellipsis; white-space: nowrap; @@ -92,71 +124,6 @@ option.placeholder padding: .2em; margin-right: .2em; } -.right-panel .remove-filters -{ - margin-top: 1.2em; -} - -button.basket -{ - width: 100%; - height: 3em; - font-size: 1.1em; - text-align: center; - background-color: #00BCD4; - border-radius: 0; -} -button.basket:hover -{ - background-color: #0AB; -} - -/* Realms */ - -.realms-box -{ - box-shadow: 0 0 0.4em #AAA; - background-color: rgba(1, 1, 1, .1); -} -.realms-box a -{ - display: block; - float: left; - line-height: 0; - width: 33.3%; -} -.realms-box a > img -{ - width: 100%; - border: 0; - padding: 0; - cursor: pointer; -} -.realms-box img:hover -{ - opacity: 0.85; -} - -/* Types */ - -.types-box -{ - position: absolute; - top: 11.5em; - bottom: 0; - right: 0; - left: 0; - overflow: auto; -} -.types-box a -{ - padding: .5em 1.5em; - display: block; -} -.types-box a:hover -{ - background-color: rgba(1, 1, 1, .1); -} /* Item description */ @@ -270,10 +237,10 @@ td.third-category float: left; margin-right: 1em; } -.item-box img +.item-box > .image > img { - max-width: 9em; - max-height: 9em; + max-width: 100%; + height: 100%; display: block; margin: 0 auto; border-radius: .3em; diff --git a/web/forms/ecomerce/catalog/ui.xml b/web/forms/ecomerce/catalog/ui.xml index ba2bfab4..c5fee5bf 100755 --- a/web/forms/ecomerce/catalog/ui.xml +++ b/web/forms/ecomerce/catalog/ui.xml @@ -1,7 +1,7 @@ - + @@ -88,6 +88,16 @@ + + + + SELECT o.id, o.date_send, ag.description agency, v.code method + FROM basket o + JOIN vn2008.Agencias ag ON ag.Id_Agencia = o.agency_id + JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id + + +

Catalog

@@ -175,7 +185,8 @@ form="item" column="Foto" show-full="true" - full-dir="900x900"/> + full-dir="900x900" + editable="true"/>
-
+
+

+ +

+

+ + +

+ +
+
-
+
+
+ +

Login mail

diff --git a/web/js/hedera/style.css b/web/js/hedera/style.css index 787744fe..293d00f3 100755 --- a/web/js/hedera/style.css +++ b/web/js/hedera/style.css @@ -3,15 +3,15 @@ @media screen { - * { font-size: 12pt; } + body { font-size: 12pt; } } @media (min-resolution: 120dpi) and (orientation: portrait) { - * { font-size: 11pt; } + body { font-size: 11pt; } } @media (min-resolution: 120dpi) and (orientation: landscape) { - * { font-size: 11pt; } + body { font-size: 11pt; } } /* Global */ @@ -20,21 +20,21 @@ body { color: #333; margin: 0; + font-family: 'Open Sans', 'Verdana', 'Sans'; } -body, label, button, input, -textarea, select, +textarea, option { - font-size: 1em; - font-family: 'Open Sans', 'Verdana', 'Sans'; + font-size: inherit; + font-family: inherit; } iframe { - border: 0; + border: none; } fieldset, div @@ -91,14 +91,18 @@ p outline: 1px solid rgba(1, 1, 1, 0.15); -moz-outline-radius: .1em; } -button::-moz-focus-inner +button::-moz-focus-inner, +input[type=submit]::-moz-focus-inner, +input[type=button]::-moz-focus-inner, +input[type=reset]::-moz-focus-inner { border: none; } -select:focus +select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 #333; + outline: none; +/* color: transparent; + text-shadow: 0 0 0 #333;*/ } /* Inputs */ @@ -180,7 +184,8 @@ option button, input[type=submit], -input[type=button] +input[type=button], +input[type=reset] { border: none; background-color: transparent; @@ -191,7 +196,8 @@ input[type=button] } button:hover, input[type=submit]:hover, -input[type=button]:hover +input[type=button]:hover, +input[type=reset]:hover { background-color: rgba(1, 1, 1, 0.1); } diff --git a/web/js/htk/column/image.js b/web/js/htk/column/image.js index 1742ac48..934db4c4 100755 --- a/web/js/htk/column/image.js +++ b/web/js/htk/column/image.js @@ -80,24 +80,24 @@ Htk.ColumnImage = new Class ,stamp: null }; - this.setSrc (cell); + this._setSrc (cell); if (this.showFull) { - img.addEventListener ('mouseover', this.onMouseOver.bind (this, cell)); - img.addEventListener ('mouseout', this.onMouseOut.bind (this)); + img.addEventListener ('mouseover', this._onMouseOver.bind (this, cell)); + img.addEventListener ('mouseout', this._onMouseOut.bind (this)); } if (this.editable) { img.className = 'editable'; - img.addEventListener ('dblclick', this.onDoubleClick.bind (this, cell)); - img.addEventListener ('error', this.onImageError.bind (this, cell)); + img.addEventListener ('dblclick', this._onDoubleClick.bind (this, cell)); + img.addEventListener ('error', this._onImageError.bind (this, cell)); } return td; } - ,setSrc: function (cell) + ,_setSrc: function (cell) { if (cell.value) { @@ -114,47 +114,49 @@ Htk.ColumnImage = new Class cell.img.src = url; } else - this.onImageError (cell); + this._onImageError (cell); } - ,onImageError: function (cell) + ,_onImageError: function (cell) { if (!cell.error) { cell.error = true; - cell.img.src = 'image/empty.png'; + cell.img.src = 'image/unknown.svg'; } } - ,onMouseOver: function (cell) + ,_onMouseOver: function (cell) { + if (cell.error) + return; + var src = this._fullDir ? this._fullDir : 'full'; src += '/'+ cell.value; if (cell.stamp) src += '?'+ cell.stamp; - if (!cell.error) - this._fullImage.show (this._basedir +'/'+ src); + this._fullImage.show (this._basedir +'/'+ src); } - ,onMouseOut: function () + ,_onMouseOut: function () { this._fullImage.hide (); } - ,onDoubleClick: function (cell) + ,_onDoubleClick: function (cell) { var editor = new Htk.ImageEditor (); editor.setData (cell.value, this._directory); - this.nameChangedHandler = this.onNameChange.bind (this, cell); + this.nameChangedHandler = this._onNameChange.bind (this, cell); editor.on ('name-changed', this.nameChangedHandler); - this.fileUploadedHandler = this.onFileUpload.bind (this, cell); + this.fileUploadedHandler = this._onFileUpload.bind (this, cell); editor.on ('file-uploaded', this.fileUploadedHandler); - this.editorClosedHandler = this.onEditorClose.bind (this); + this.editorClosedHandler = this._onEditorClose.bind (this); editor.on ('closed', this.editorClosedHandler); this.popup = new Htk.Popup (); @@ -162,21 +164,21 @@ Htk.ColumnImage = new Class this.popup.show (cell.img); } - ,onNameChange: function (cell, editor, value) + ,_onNameChange: function (cell, editor, value) { cell.value = value; - this.setSrc (cell); + this._setSrc (cell); this.changed (cell.tr, value); } - ,onFileUpload: function (cell, editor) + ,_onFileUpload: function (cell, editor) { cell.stamp = new Date ().getTime (); - this.setSrc (cell); + this._setSrc (cell); this.popup.hide (); } - ,onEditorClose: function (editor) + ,_onEditorClose: function (editor) { editor.disconnect ('name-changed', this.nameChangedHandler); editor.disconnect ('file-uploaded', this.fileUploadedHandler); diff --git a/web/js/htk/field/date-chooser.js b/web/js/htk/field/date-chooser.js index 9c35b488..1b91b63e 100755 --- a/web/js/htk/field/date-chooser.js +++ b/web/js/htk/field/date-chooser.js @@ -34,33 +34,36 @@ Htk.DateChooser = new Class ,setEditable: function (editable) { + Vn.Node.remove (this.label); + + if (this.calendar) + { + this.node.removeChild (this.button); + + this.calendar.disconnectByInstance (this); + this.calendar = null; + } + if (editable && !this.calendar) { - Vn.Node.remove (this.label); - this.button = document.createElement ('button'); this.button.className = 'input'; this.button.title = _('ChangeDate'); - this.button.addEventListener ('click', this.showCalendar.bind (this)); + this.button.addEventListener ('click', this._onClick.bind (this)); this.button.appendChild (this.label); this.node.appendChild (this.button); this.calendar = new Htk.Calendar (); - this.calendar.on ('changed', this.calendarChanged.bind (this)); + this.calendar.on ('changed', this._onCalendarChange.bind (this)); this.popup = new Htk.Popup (); this.popup.setChild (this.calendar); } else if (!editable) - { - Vn.Node.remove (this.label); this.node.appendChild (this.label); - this.calendar = null; - this.node.removeChild (this.button); - } } - ,calendarChanged: function (calendar) + ,_onCalendarChange: function (calendar) { if (this.ignoreCalendarChange) return; @@ -72,7 +75,7 @@ Htk.DateChooser = new Class this.valueChanged (newDate); } - ,showCalendar: function (event) + ,_onClick: function (event) { this.ignoreCalendarChange = true; this.calendar.value = this._value; diff --git a/web/js/htk/field/image.js b/web/js/htk/field/image.js index f962fdfa..72742786 100755 --- a/web/js/htk/field/image.js +++ b/web/js/htk/field/image.js @@ -19,7 +19,7 @@ Htk.Image = new Class { this._directory = x; this._basedir = Vn.Config['image_dir'] +'/'+ x; - this.render (false); + this._setSrc (); } ,get: function () { @@ -35,7 +35,7 @@ Htk.Image = new Class ,set: function (x) { this._subdir = x; - this.render (false); + this._setSrc (); } ,get: function () { @@ -56,8 +56,8 @@ Htk.Image = new Class fullImage = new Htk.FullImage (); this._fullImage = fullImage; - this.node.addEventListener ('mouseover', this.onMouseOver.bind (this)); - this.node.addEventListener ('mouseout', this.onMouseOut.bind (this)); + this.node.addEventListener ('mouseover', this._onMouseOver.bind (this)); + this.node.addEventListener ('mouseout', this._onMouseOut.bind (this)); } this._showFull = x; @@ -87,28 +87,35 @@ Htk.Image = new Class ,_directory: null ,_subdir: null ,_basedir: null - ,_empty: false + ,_error: false ,_showFull: false ,_fullDir: null + ,_editable: false ,initialize: function (props) { this.createElement ('img'); -// this.node.addEventListener ('error', this._onImageError.bind (this)); + this.node.className = 'htk-image'; + this.node.addEventListener ('error', this._onImageError.bind (this)); + this.setEditable (this._editable); this.parent (props); } - - ,_onImageError: function () + + ,setEditable: function (editable) { - if (!this._empty) + if (editable) { - this._empty = true; - this.node.src = 'image/empty.png'; + Vn.Node.addClass (this.node, 'editable'); + this.node.addEventListener ('dblclick', this._onDoubleClick.bind (this)); } + else + Vn.Node.removeClass (this.node, 'editable'); + + this._setEmpty (); } - ,render: function (force) + ,_setSrc: function () { if (this._value) { @@ -122,28 +129,36 @@ Htk.Image = new Class url += this._value; - if (force) - url += '?' + (new Date()).getTime (); + if (this._stamp) + url += '?'+ this._stamp; - this._empty = false; + this._error = false; this.node.src = url; this.node.style.display = ''; } else - { + this._setEmpty (); + } + + ,_setEmpty: function () + { + if (this._value !== null && this._value !== '') + return; + + if (this._editable) + this.node.src = 'image/add-photo.svg'; + else delete this.node.src; - this.node.style.display = 'none'; - } } ,putValue: function (value) { - this.render (false); + this._setSrc (); } - ,onMouseOver: function (cell) + ,_onMouseOver: function () { - if (!this._showFull) + if (!this._showFull || !this._value || this._error) return; var src = this._fullDir ? this._fullDir : 'full'; @@ -152,34 +167,50 @@ Htk.Image = new Class if (this._stamp) src += '?'+ this._stamp; - if (!cell.error) - this._fullImage.show (this._basedir +'/'+ src); + this._fullImage.show (this._basedir +'/'+ src); } - ,onMouseOut: function () + ,_onMouseOut: function () { this._fullImage.hide (); } - ,setEditable: function (editable) + ,_onImageError: function () { - if (editable) - { - var obj = this; - this.style.cursor = 'pointer'; - this.node.addEventListener ('dblclick', - this.onDoubleClick.bind (this)); - } + if (this._error) + return; + + this._error = true; } - - ,onDoubleClick: function (event) + + ,_onDoubleClick: function () { var editor = new Htk.ImageEditor (); - editor.setData (cell.value, this._directory); - + editor.setData (this.value, this._directory); + editor.on ('name-changed', this._onNameChange, this); + editor.on ('file-uploaded', this._onFileUpload, this); + editor.on ('closed', this._onEditorClose, this); + this.popup = new Htk.Popup (); this.popup.setChild (editor); this.popup.show (this.node); } + + ,_onNameChange: function (editor, value) + { + this.value = value; + } + + ,_onFileUpload: function (cell, editor) + { + this._stamp = new Date ().getTime (); + this.setSrc (cell); + this.popup.hide (); + } + + ,_onEditorClose: function (editor) + { + editor.disconnectByInstance (this); + } }); diff --git a/web/js/htk/field/select.js b/web/js/htk/field/select.js index 5658e48e..8efb36a2 100755 --- a/web/js/htk/field/select.js +++ b/web/js/htk/field/select.js @@ -109,13 +109,19 @@ Htk.Select = new Class ,showColumnIndex: 1 ,showColumnName: null ,_notNull: true + ,_webkitRefresh: false ,initialize: function (props) { - this.createElement ('select'); - this.node.addEventListener ('change', this._onChange.bind (this)); - this._addPlaceholder (this._placeholder); + var select = this.createElement ('select'); + select.addEventListener ('change', this._onChange.bind (this)); + // Webkit bug: Does not refresh select options + if (navigator.userAgent.match (/WebKit/)) + select.addEventListener ('mousedown', + this._onWebkitMouseDown.bind (this)); + + this._addPlaceholder (this._placeholder); this.parent (props); } @@ -230,29 +236,13 @@ Htk.Select = new Class this.addOption (data[i][this.showColumnIndex], data[i][1]); this.selectOption (); - this._onTimeout (); this.signalEmit ('ready'); + } else this.setRow (-1); - } - - ,_onTimeout: function () - { - if (this._blockMouseDown || !navigator.userAgent.match (/WebKit/)) - return; - - this._blockMouseDown = true; - - this.node.blur(); - - var e = document.createEvent('MouseEvents'); - e.initMouseEvent ('mousedown', - true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - this.node.dispatchEvent(e); - - this._blockMouseDown = false; - this.node.focus (); + + this._webkitRefreshOptions (); } ,setEditable: function (editable) @@ -276,4 +266,39 @@ Htk.Select = new Class { this.selectOption (); } + + // Webkit bug: Does not refresh select options + + ,_webkitRefreshOptions: function () + { + if (document.activeElement === this.node && this._webkitRefresh) + { + if (this._model.ready) + this._webkitRefresh = false; + + this.node.blur(); + this.node.focus (); + setTimeout (this._onWebkitTimeout.bind (this), 0); + } + } + + ,_onWebkitMouseDown: function () + { + if (this._webkitBlock) + return; + + this._webkitRefresh = true; + } + + ,_onWebkitTimeout: function () + { + this._webkitBlock = true; + + var e = document.createEvent('MouseEvents'); + e.initMouseEvent ('mousedown', + true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + this.node.dispatchEvent(e); + + this._webkitBlock = false; + } }); diff --git a/web/js/htk/image-editor.js b/web/js/htk/image-editor.js index 3f3e2bf9..b39b5b87 100755 --- a/web/js/htk/image-editor.js +++ b/web/js/htk/image-editor.js @@ -22,7 +22,12 @@ Htk.ImageEditor = new Class ,onNameChange: function () { - this.signalEmit ('name-changed', this.$('name').value); + var newValue = this.$('name').value; + + if (!newValue) + newValue = null + + this.signalEmit ('name-changed', newValue); } ,onFormSubmit: function () diff --git a/web/js/htk/style.css b/web/js/htk/style.css index c28fa45e..05051635 100755 --- a/web/js/htk/style.css +++ b/web/js/htk/style.css @@ -259,6 +259,14 @@ td.cell-image img border-radius: 0; } +/* Image */ + +.htk-image.editable:hover +{ + cursor: pointer; + opacity: 0.85; +} + /* Full image */ .htk-full-image @@ -299,7 +307,7 @@ td.cell-image img left: 50%; top: 4em; width: 21em; - margin-left: -11em; + margin-left: -10.5em; text-align: center; overflow: auto; max-height: 40em; @@ -481,12 +489,16 @@ td.cell-image img background-color: white; height: 2.2em; } +.htk-search-entry > * +{ + display: inline-block; + vertical-align: middle; +} .htk-search-entry > img { margin: 0; height: 1.5em; - margin-left: .4em; - vertical-align: middle; + margin: 0 .4em; } .htk-search-entry > .entry { diff --git a/web/js/misc/main.js b/web/js/misc/main.js index 26628082..d6fc5bd0 100755 --- a/web/js/misc/main.js +++ b/web/js/misc/main.js @@ -1,4 +1,3 @@ -Vn.include ('js/misc/tinymce/tinymce.min'); Vn.include ('js/misc/mootools'); diff --git a/web/js/vn/hash-param.js b/web/js/vn/hash-param.js index ad55ac4b..0f308c3a 100755 --- a/web/js/vn/hash-param.js +++ b/web/js/vn/hash-param.js @@ -31,12 +31,38 @@ Vn.HashParam = new Class { return this._key; } + }, + value: + { + type: Object + ,set: function (x) + { + this._value = x; + } + ,get: function () + { + return this._value; + } + }, + type: + { + type: Object + ,set: function (x) + { + this._type = x; + this._onHashChange (); + } + ,get: function () + { + return this._type; + } } } - ,lock: false - ,value: undefined + ,_lock: false + ,_value: undefined ,_key: null + ,_type: null ,initialize: function (props) { @@ -52,10 +78,21 @@ Vn.HashParam = new Class return; var newValue = Vn.Hash.get (this._key); - - if (this.value != newValue) + + if (this._type) + switch (this._type) { - this.value = newValue; + case Boolean: + newValue = (/^(true|1)$/i).test (newValue); + break; + case Number: + newValue = 0 + new Number (newValue); + break; + } + + if (this._value != newValue) + { + this._value = newValue; this.signalEmit ('changed'); this._refreshParam (); } @@ -63,25 +100,25 @@ Vn.HashParam = new Class ,_refreshParam: function () { - if (this._param && !this.lock) + if (this._param && !this._lock) { - this.lock = true; - this._param.value = this.value; - this.lock = false; + this._lock = true; + this._param.value = this._value; + this._lock = false; } } ,_onParamChange: function () { - if (this.lock) + if (this._lock) return; var map = {}; map[this.key] = this._param.value; - this.lock = true; + this._lock = true; Vn.Hash.add (map); - this.lock = false; + this._lock = false; } }); diff --git a/web/js/vn/hash.js b/web/js/vn/hash.js index 3c47d40b..4826769b 100755 --- a/web/js/vn/hash.js +++ b/web/js/vn/hash.js @@ -58,12 +58,16 @@ Vn.Hash = **/ ,set: function (map) { + if (map) for (var key in map) if (map[key] === null || map[key] === undefined) delete map[key]; var newHash = this.make (map); + if (!map) + map = {}; + if (newHash !== this._hash) { this._hashMap = map; @@ -88,7 +92,7 @@ Vn.Hash = { var hash = '#!'; - if (add) + if (add && map) for (var key in this._hashMap) if (!map[key]) map[key] = this._hashMap[key]; diff --git a/web/js/vn/vn.js b/web/js/vn/vn.js index ace1400d..ebfd652a 100755 --- a/web/js/vn/vn.js +++ b/web/js/vn/vn.js @@ -102,11 +102,13 @@ var Vn = var callbacks = includeData.callbacks; + if (callbacks) for (var i = 0; i < callbacks.length; i++) callbacks[i] (includeData.loaded); var dependants = includeData.dependants; + if (dependants) for (var i = 0; i < dependants.length; i++) { var dependant = dependants[i]; diff --git a/web/locale/ca/forms/cms/about.json b/web/locale/ca/forms/cms/about.json index 8267a217..e3e3942a 100755 --- a/web/locale/ca/forms/cms/about.json +++ b/web/locale/ca/forms/cms/about.json @@ -17,7 +17,7 @@ ,"BuyersAndTraders": "9 compradors especialitzats i els nostres 20 comercials t'assessoraran en tot el que necessitis." - ,"Training": "Verdnatura formació" + ,"Verdnatura training": "Verdnatura formació" ,"GoodTraining": "En Verdnatura sabem que una bona formació és imprescindible per al desenvolupament òptim de qualsevol activitat, i com no, també la de florista." ,"SpecialTrainingPrices": "Perquè el pressupost d'una escola no repercuteixi en la qualitat de la teva formació, col·laborem amb una política de preus especials per a totes aquelles escoles que ho sol·licitin realitzar cursos a les nostres instal·lacions de Verdnatura Silla." diff --git a/web/locale/ca/forms/cms/home.json b/web/locale/ca/forms/cms/home.json index eabe79eb..ec7b073e 100755 --- a/web/locale/ca/forms/cms/home.json +++ b/web/locale/ca/forms/cms/home.json @@ -1,5 +1,7 @@ { - "Sent": "Enviat" + "Start order": "Començar comanda" + + ,"Sent": "Enviat" ,"Author": "Autor" ,"votes": "vots" ,"NoAnswerSelected": "No has seleccionat cap resposta" diff --git a/web/locale/ca/forms/ecomerce/catalog.json b/web/locale/ca/forms/ecomerce/catalog.json index 9eaf8238..792017f2 100755 --- a/web/locale/ca/forms/ecomerce/catalog.json +++ b/web/locale/ca/forms/ecomerce/catalog.json @@ -7,15 +7,22 @@ ,"ArticleNotFound": "Artcle no trobat" ,"ArticleNotAvailable": "Article no disponible" - ,"StartOrder": "Començar encàrrec" + ,"Switch view": "Canviar vista" + ,"StartOrder": "Començar comanda" ,"ShoppingBasket": "Cistella de la compra" - ,"Realm": "Família" - ,"Subtype": "Subtipus" - ,"Date:": "Data:" - ,"Warehouse:": "Magatzem:" - ,"Search:": "Cercar:" - ,"GeneralSearch": "Cerca general" + ,"Search": "Cercar" + ,"Configure": "Configurar" + ,"Order by": "Ordenar" + ,"Available": "Displonible" + ,"Size": "Mesura" + ,"Realm": "Regne" + ,"Family": "Família" + ,"Color": "Color" + ,"Producer": "Productor" + ,"Origin": "Origen" + ,"Category": "Categoria" + ,"Remove filters": "Esborrar filtres" ,"Amount": "Quant" ,"Aval": "Disp" @@ -27,7 +34,9 @@ ,"Pack": "Pack" ,"Origin": "Origen" ,"Price": "Preu" + ,"%.0d Units": "%.0d Unitats" + ,"from": "des de" ,"from %.2d€": "des de %.2d€" ,"AddToBasket": "Afegir article" ,"Add": "Afegir" diff --git a/web/locale/ca/forms/ecomerce/orders.json b/web/locale/ca/forms/ecomerce/orders.json index d4ed015a..8d8345d8 100755 --- a/web/locale/ca/forms/ecomerce/orders.json +++ b/web/locale/ca/forms/ecomerce/orders.json @@ -20,6 +20,7 @@ ,"ShoppingBasket": "Cistella de la compra" ,"SeeOrder": "Mostrar detall de l'encàrrec" + ,"Delivery": "Lliurament" ,"TicketNumber": "N ticket" ,"SentAddress": "Adreça d'enviament" ,"Consignee": "Consignatari" diff --git a/web/locale/ca/forms/ecomerce/ticket.json b/web/locale/ca/forms/ecomerce/ticket.json index 38507c12..4c450fa0 100755 --- a/web/locale/ca/forms/ecomerce/ticket.json +++ b/web/locale/ca/forms/ecomerce/ticket.json @@ -1,20 +1,13 @@ { "OrderDetail": "Detall de l'encarrec" + ,"%A, %e of %B %Y": "%A, %e de %B %Y" ,"Print delivery note": "Imprimir albarà" - ,"TicketNumber:": "N ticket:" - ,"DateExit:": "Data d'enviament:" - ,"SendMethod:": "Forma d'enviament:" - ,"Notes:": "Notes:" - ,"TicketTotal:": "Total encàrrec:" - ,"(VATIncluded)": "(IVA inclós)" - - ,"PC": "Codi postal" - ,"City": "Ciutat" - ,"Province": "Província" - ,"Address": "Domicili" - ,"Consignee": "Consignatari" + ,"Delivery": "Entrega" + ,"Total": "Total" + ,"Tax base": "Base imposable" + ,"VAT": "IVA" ,"ItemNumber": "N article" ,"Amount": "Quant" diff --git a/web/locale/en/forms/cms/about.json b/web/locale/en/forms/cms/about.json index e415a7e4..00f38993 100755 --- a/web/locale/en/forms/cms/about.json +++ b/web/locale/en/forms/cms/about.json @@ -17,7 +17,7 @@ ,"BuyersAndTraders": "9 specialized trade buyers and our 20 advise you on everything you need." - ,"Training": "Verdnatura training" + ,"Verdnatura training": "Verdnatura training" ,"GoodTraining": "In Verdnatura we know that a good education is essential for the optimal development of any activity, and of course, also the florist." ,"SpecialTrainingPrices": "For the school budget does not affect the quality of your training, we work with special pricing policy for all schools that request it take courses in our facilities Verdnatura chair." diff --git a/web/locale/en/forms/cms/home.json b/web/locale/en/forms/cms/home.json index 2d6323fd..3179c27e 100755 --- a/web/locale/en/forms/cms/home.json +++ b/web/locale/en/forms/cms/home.json @@ -1,5 +1,7 @@ { - "Sent": "Sent" + "Start order": "Start order" + + ,"Sent": "Sent" ,"Author": "Author" ,"votes": "votes" ,"NoAnswerSelected": "No answer selected" diff --git a/web/locale/en/forms/ecomerce/catalog.json b/web/locale/en/forms/ecomerce/catalog.json index d83185ae..3f8e4afc 100755 --- a/web/locale/en/forms/ecomerce/catalog.json +++ b/web/locale/en/forms/ecomerce/catalog.json @@ -12,7 +12,8 @@ ,"ShoppingBasket": "Shopping basket" ,"Search": "Search" - ,"Order by": "Order by" + ,"Configure": "Configure" + ,"Order": "Order" ,"Available": "Available" ,"Size": "Size" ,"Realm": "Realm" @@ -33,7 +34,7 @@ ,"Pack": "Pack" ,"Origin": "Origin" ,"Price": "Price" - ,"%.0d Units": "%.0d Units " + ,"%.0d Units": "%.0d Units" ,"from": "from" ,"from %.2d€": "from %.2d€" diff --git a/web/locale/en/forms/ecomerce/orders.json b/web/locale/en/forms/ecomerce/orders.json index 35edbefa..a2833d1b 100755 --- a/web/locale/en/forms/ecomerce/orders.json +++ b/web/locale/en/forms/ecomerce/orders.json @@ -20,6 +20,7 @@ ,"ShoppingBasket": "Shopping basket" ,"SeeOrder": "Show details of the order" + ,"Delivery": "Delivery" ,"TicketNumber": "Ticket number" ,"SentAddress": "Delivery address" ,"Consignee": "Consignee" diff --git a/web/locale/en/forms/ecomerce/ticket.json b/web/locale/en/forms/ecomerce/ticket.json index a0937941..ccb4cd01 100755 --- a/web/locale/en/forms/ecomerce/ticket.json +++ b/web/locale/en/forms/ecomerce/ticket.json @@ -1,20 +1,13 @@ { "OrderDetail": "Order detail" + ,"%A, %e of %B %Y": "%A, %e of %B %Y" ,"Print delivery note": "Print delivery note" - ,"TicketNumber:": "Ticket number:" - ,"DateExit:": "Delivery date:" - ,"SendMethod:": "Delivery method:" - ,"Notes:": "Notes:" - ,"TicketTotal:": "Order total:" - ,"(VATIncluded)": "(VAT included)" - - ,"PC": "Postal code" - ,"City": "City" - ,"Province": "Province" - ,"Address": "Address" - ,"Consignee": "Consignee" + ,"Delivery": "Delivery" + ,"Total": "Total" + ,"Tax base": "Tax base" + ,"VAT": "VAT" ,"ItemNumber": "Item number" ,"Amount": "Amount" diff --git a/web/locale/es/forms/cms/about.json b/web/locale/es/forms/cms/about.json index 7517512a..ce9fad98 100755 --- a/web/locale/es/forms/cms/about.json +++ b/web/locale/es/forms/cms/about.json @@ -17,7 +17,7 @@ ,"BuyersAndTraders": "9 compradores especializados y nuestros 20 comerciales te asesorarán en todo lo que necesites." - ,"Training": "Verdnatura formación" + ,"Verdnatura training": "Verdnatura formación" ,"GoodTraining": "En Verdnatura sabemos que una buena formación es imprescindible para el desarrollo óptimo de cualquier actividad, y cómo no, también la de florista." ,"SpecialTrainingPrices": "Para que el presupuesto de una escuela no repercuta en la calidad de tu formación, colaboramos con una política de precios especiales para todas aquellas escuelas que lo soliciten realizar cursos en nuestras instalaciones de Verdnatura Silla." diff --git a/web/locale/es/forms/cms/home.json b/web/locale/es/forms/cms/home.json index d440f483..3da49277 100755 --- a/web/locale/es/forms/cms/home.json +++ b/web/locale/es/forms/cms/home.json @@ -1,5 +1,7 @@ { - "Sent": "Enviado" + "Start order": "Empezar pedido" + + ,"Sent": "Enviado" ,"Author": "Autor" ,"votes": "votos" ,"NoAnswerSelected": "No has seleccionado ninguna respuesta" diff --git a/web/locale/es/forms/ecomerce/catalog.json b/web/locale/es/forms/ecomerce/catalog.json index 8180d5fa..54336f5f 100755 --- a/web/locale/es/forms/ecomerce/catalog.json +++ b/web/locale/es/forms/ecomerce/catalog.json @@ -12,6 +12,7 @@ ,"ShoppingBasket": "Cesta de la compra" ,"Search": "Buscar" + ,"Configure": "Configurar" ,"Order by": "Ordenar" ,"Available": "Displonible" ,"Size": "Medida" @@ -20,7 +21,7 @@ ,"Color": "Color" ,"Producer": "Productor" ,"Origin": "Origen" - ,"Category": "Categoria" + ,"Category": "Categoría" ,"Remove filters": "Quitar filtros" ,"Amount": "Cant" @@ -33,7 +34,7 @@ ,"Pack": "Pack" ,"Origin": "Origen" ,"Price": "Precio" - ,"%.0d Units": "%.0d Unidades " + ,"%.0d Units": "%.0d Unidades" ,"from": "desde" ,"from %.2d€": "desde %.2d€" diff --git a/web/locale/es/forms/ecomerce/orders.json b/web/locale/es/forms/ecomerce/orders.json index 100fc70c..d529fee7 100755 --- a/web/locale/es/forms/ecomerce/orders.json +++ b/web/locale/es/forms/ecomerce/orders.json @@ -20,6 +20,7 @@ ,"ShoppingBasket": "Cesta de la compra" ,"SeeOrder": "Mostrar detalle del pedido" + ,"Delivery": "Entrega" ,"TicketNumber": "Nº ticket" ,"SentAddress": "Dirección de envío" ,"Consignee": "Consignatario" diff --git a/web/locale/es/forms/ecomerce/ticket.json b/web/locale/es/forms/ecomerce/ticket.json index 555129e8..ef5acf3e 100755 --- a/web/locale/es/forms/ecomerce/ticket.json +++ b/web/locale/es/forms/ecomerce/ticket.json @@ -1,20 +1,13 @@ { "OrderDetail": "Detalle del pedido" + ,"%A, %e of %B %Y": "%A, %e de %B %Y" ,"Print delivery note": "Imprimir albarán" - ,"TicketNumber:": "Nº ticket:" - ,"DateExit:": "Fecha de envío:" - ,"SendMethod:": "Forma de envío:" - ,"Notes:": "Notas:" - ,"TicketTotal:": "Total pedido:" - ,"(VATIncluded)": "(IVA incluído)" - - ,"PC": "Código postal" - ,"City": "Ciudad" - ,"Province": "Provincia" - ,"Address": "Domicilio" - ,"Consignee": "Consignatario" + ,"Delivery": "Entrega" + ,"Total": "Total" + ,"Tax base": "Base imponible" + ,"VAT": "IVA" ,"ItemNumber": "Nº artículo" ,"Amount": "Cant" diff --git a/web/locale/fr/forms/cms/about.json b/web/locale/fr/forms/cms/about.json index 84677e0d..16b95654 100755 --- a/web/locale/fr/forms/cms/about.json +++ b/web/locale/fr/forms/cms/about.json @@ -17,7 +17,7 @@ ,"BuyersAndTraders": "9 acheteurs commerciaux spécialisés et notre 20 conseillera dans tout ce que vous avez besoin." - ,"Training": "Formation Verdnatura" + ,"Verdnatura training": "Formation Verdnatura" ,"GoodTraining": "Dans Verdnatura sait qu'une bonne éducation est essentielle pour le développement optimal de toute activité, et bien sûr, aussi le fleuriste." ,"SpecialTrainingPrices": "Pour le budget d'une école n'a aucun effet sur la qualité de votre formation, travailler avec la politique de tarification spéciale pour toutes les écoles qui le demandent de suivre des cours dans nos installations chaise Verdnatura." diff --git a/web/locale/fr/forms/cms/home.json b/web/locale/fr/forms/cms/home.json index ccd47e75..3aef63d2 100755 --- a/web/locale/fr/forms/cms/home.json +++ b/web/locale/fr/forms/cms/home.json @@ -1,5 +1,7 @@ { - "Sent": "Envoyé" + "Start order": "Lancer commande" + + ,"Sent": "Envoyé" ,"Author": "Auteur" ,"votes": "votes" ,"NoAnswerSelected": "Vous avez pas sélectionné de réponse" diff --git a/web/locale/fr/forms/ecomerce/catalog.json b/web/locale/fr/forms/ecomerce/catalog.json index 86712ffb..667079bb 100755 --- a/web/locale/fr/forms/ecomerce/catalog.json +++ b/web/locale/fr/forms/ecomerce/catalog.json @@ -6,16 +6,23 @@ ,"Select filter from right menu": "Sélectionnez un filtre dans le menu de droite" ,"ArticleNotFound": "Article non trouvé" ,"ArticleNotAvailable": "Article non disponible" - + + ,"Switch view": "Changer vue" ,"StartOrder": "Acheter" ,"ShoppingBasket": "Mon panier" + ,"Search": "Recherche" + ,"Configure": "Régler" + ,"Order by": "Ordre" + ,"Available": "Displonible" + ,"Size": "Mesure" ,"Realm": "Famille" - ,"Subtype": "Sous-genre" - ,"Date:": "Date:" - ,"Warehouse:": "Magasin:" - ,"Search:": "Recherche:" - ,"GeneralSearch": "Recherche générale" + ,"Family": "Sous-genre" + ,"Color": "Couleur" + ,"Producer": "Producteur" + ,"Origin": "Origine" + ,"Category": "Catégorie" + ,"Remove filters": "Retirer les filtres" ,"Amount": "Quant" ,"Aval": "Disp" @@ -27,7 +34,9 @@ ,"Pack": "Pack" ,"Origin": "Origine" ,"Price": "Prix" + ,"%.0d Units": "%.0d Unités" + ,"from": "pour" ,"from %.2d€": "pour %.2d€" ,"AddToBasket": "Ajouter article" ,"Add": "Ajouter" diff --git a/web/locale/fr/forms/ecomerce/orders.json b/web/locale/fr/forms/ecomerce/orders.json index 730fe83f..66393a31 100755 --- a/web/locale/fr/forms/ecomerce/orders.json +++ b/web/locale/fr/forms/ecomerce/orders.json @@ -20,6 +20,7 @@ ,"ShoppingBasket": "Panier" ,"SeeOrder": "Votre panier" + ,"Delivery": "Accouchement" ,"TicketNumber": "Numéro ticket" ,"SentAddress": "Adresse de livraison" ,"Consignee": "Destinataire" diff --git a/web/locale/fr/forms/ecomerce/ticket.json b/web/locale/fr/forms/ecomerce/ticket.json index e0692039..89fc71d6 100755 --- a/web/locale/fr/forms/ecomerce/ticket.json +++ b/web/locale/fr/forms/ecomerce/ticket.json @@ -1,20 +1,13 @@ { "OrderDetail": "Détails de la commande" + ,"%A, %e of %B %Y": "%A, %e de %B %Y" ,"Print delivery note": "Imprimer bulletin de livraison" - ,"TicketNumber:": "Num ticket:" - ,"DateExit:": "Date d'envoi:" - ,"SendMethod:": "Mode d'envoi:" - ,"Notes:": "Notes:" - ,"TicketTotal:": "Total:" - ,"(VATIncluded)": "(TVA comprise)" - - ,"PC": "Code postal" - ,"City": "Ville" - ,"Province": "Province" - ,"Address": "Maison" - ,"Consignee": "Destinataire" + ,"Delivery": "Accouchement" + ,"Total": "Total" + ,"Tax base": "Imposable" + ,"VAT": "TVA" ,"ItemNumber": "Num article" ,"Amount": "Quant" diff --git a/web/locale/mn/forms/cms/about.json b/web/locale/mn/forms/cms/about.json index e415a7e4..00f38993 100755 --- a/web/locale/mn/forms/cms/about.json +++ b/web/locale/mn/forms/cms/about.json @@ -17,7 +17,7 @@ ,"BuyersAndTraders": "9 specialized trade buyers and our 20 advise you on everything you need." - ,"Training": "Verdnatura training" + ,"Verdnatura training": "Verdnatura training" ,"GoodTraining": "In Verdnatura we know that a good education is essential for the optimal development of any activity, and of course, also the florist." ,"SpecialTrainingPrices": "For the school budget does not affect the quality of your training, we work with special pricing policy for all schools that request it take courses in our facilities Verdnatura chair." diff --git a/web/locale/mn/forms/cms/home.json b/web/locale/mn/forms/cms/home.json index 2d6323fd..40b2b3f7 100755 --- a/web/locale/mn/forms/cms/home.json +++ b/web/locale/mn/forms/cms/home.json @@ -1,5 +1,7 @@ { - "Sent": "Sent" + "Start order": "Захиалга эхлэх" + + ,"Sent": "Sent" ,"Author": "Author" ,"votes": "votes" ,"NoAnswerSelected": "No answer selected" diff --git a/web/locale/mn/forms/ecomerce/catalog.json b/web/locale/mn/forms/ecomerce/catalog.json index 1b372742..d963dd51 100755 --- a/web/locale/mn/forms/ecomerce/catalog.json +++ b/web/locale/mn/forms/ecomerce/catalog.json @@ -12,7 +12,8 @@ ,"ShoppingBasket": "Shopping basket" ,"Search": "Search" - ,"Order by": "Order by" + ,"Configure": "Configure" + ,"Order": "Order" ,"Available": "Available" ,"Size": "Size" ,"Realm": "Realm" @@ -33,7 +34,7 @@ ,"Pack": "Pack" ,"Origin": "Origin" ,"Price": "Price" - ,"%.0d Units": "%.0d Units " + ,"%.0d Units": "%.0d Units" ,"from": "from" ,"from %.2d€": "from %.2d€" diff --git a/web/locale/mn/forms/ecomerce/orders.json b/web/locale/mn/forms/ecomerce/orders.json index ceb7d1a4..31eacbae 100755 --- a/web/locale/mn/forms/ecomerce/orders.json +++ b/web/locale/mn/forms/ecomerce/orders.json @@ -20,6 +20,7 @@ ,"ShoppingBasket": "Shopping basket" ,"SeeOrder": "Show details of the order" + ,"Delivery": "Delivery" ,"TicketNumber": "Ticket number" ,"SentAddress": "Delivery address" ,"Consignee": "Consignee" diff --git a/web/locale/mn/forms/ecomerce/ticket.json b/web/locale/mn/forms/ecomerce/ticket.json index a0937941..ccb4cd01 100755 --- a/web/locale/mn/forms/ecomerce/ticket.json +++ b/web/locale/mn/forms/ecomerce/ticket.json @@ -1,20 +1,13 @@ { "OrderDetail": "Order detail" + ,"%A, %e of %B %Y": "%A, %e of %B %Y" ,"Print delivery note": "Print delivery note" - ,"TicketNumber:": "Ticket number:" - ,"DateExit:": "Delivery date:" - ,"SendMethod:": "Delivery method:" - ,"Notes:": "Notes:" - ,"TicketTotal:": "Order total:" - ,"(VATIncluded)": "(VAT included)" - - ,"PC": "Postal code" - ,"City": "City" - ,"Province": "Province" - ,"Address": "Address" - ,"Consignee": "Consignee" + ,"Delivery": "Delivery" + ,"Total": "Total" + ,"Tax base": "Tax base" + ,"VAT": "VAT" ,"ItemNumber": "Item number" ,"Amount": "Amount" diff --git a/web/locale/pt/forms/cms/about.json b/web/locale/pt/forms/cms/about.json index 3368992c..99e48c3d 100644 --- a/web/locale/pt/forms/cms/about.json +++ b/web/locale/pt/forms/cms/about.json @@ -17,7 +17,7 @@ ,"BuyersAndTraders": "9 compradores especializados e nossos 20 comerciais te asessorarão em tudo o que necessites." - ,"Training": "Verdnatura formação" + ,"Verdnatura training": "Verdnatura formação" ,"GoodTraining": "Em Verdnatura sabemos que uma boa formação é imprescindível para o desenvolvimento ótimo de qualqer atividade, e como não, também a de florista." ,"SpecialTrainingPrices": "Para que o orçamento de uma escola não repercuta na qualidade da sua formação, colaboramos com uma política de preços especiais para todas aquelas escolas que solicitem realizar cursos em nossas instalações de Verdnatura Silla." diff --git a/web/locale/pt/forms/cms/home.json b/web/locale/pt/forms/cms/home.json index 8849ee17..b1a949e8 100644 --- a/web/locale/pt/forms/cms/home.json +++ b/web/locale/pt/forms/cms/home.json @@ -1,5 +1,7 @@ { - "Sent": "Enviado" + "Start order": "Comece uma ordem" + + ,"Sent": "Enviado" ,"Author": "Autor" ,"votes": "votos" ,"NoAnswerSelected": "Não seleccionou nenhuma resposta" diff --git a/web/locale/pt/forms/ecomerce/catalog.json b/web/locale/pt/forms/ecomerce/catalog.json index 3a26c213..38443db3 100644 --- a/web/locale/pt/forms/ecomerce/catalog.json +++ b/web/locale/pt/forms/ecomerce/catalog.json @@ -12,6 +12,7 @@ ,"ShoppingBasket": "Cesta da compra" ,"Search": "Buscar" + ,"Configure": "Configurar" ,"Order by": "Organizar" ,"Available": "Disponível" ,"Size": "Medida" diff --git a/web/locale/pt/forms/ecomerce/orders.json b/web/locale/pt/forms/ecomerce/orders.json index cc645f6e..f9da5c4b 100644 --- a/web/locale/pt/forms/ecomerce/orders.json +++ b/web/locale/pt/forms/ecomerce/orders.json @@ -20,6 +20,7 @@ ,"ShoppingBasket": "Cesta da compra" ,"SeeOrder": "Mostrar detalhe do pedido" + ,"Delivery": "Entrega" ,"TicketNumber": "Nº ticket" ,"SentAddress": "Endereço de envío" ,"Consignee": "Consignatario" diff --git a/web/locale/pt/forms/ecomerce/ticket.json b/web/locale/pt/forms/ecomerce/ticket.json index 3d1e5a76..a70e10cc 100644 --- a/web/locale/pt/forms/ecomerce/ticket.json +++ b/web/locale/pt/forms/ecomerce/ticket.json @@ -1,20 +1,13 @@ { "OrderDetail": "Detalhe do pedido" + ,"%A, %e of %B %Y": "%A, %e de %B %Y" ,"Print delivery note": "Imprimir guía de remessa" - ,"TicketNumber:": "Nº ticket:" - ,"DateExit:": "Data de envío:" - ,"SendMethod:": "Forma de envío:" - ,"Notes:": "Notas:" - ,"TicketTotal:": "Total pedido:" - ,"(VATIncluded)": "(IVA incluído)" - - ,"PC": "Código postal" - ,"City": "Município" - ,"Province": "Distrito" - ,"Address": "Endereço" - ,"Consignee": "Consignatario" + ,"Delivery": "Entrega" + ,"Total": "Total" + ,"Tax base": "Tributável" + ,"VAT": "IVA" ,"ItemNumber": "Nº artículo" ,"Amount": "Qtde"