diff --git a/web/forms/account/address-list/style.css b/web/forms/account/address-list/style.css index c3fba906..e45c6e9e 100755 --- a/web/forms/account/address-list/style.css +++ b/web/forms/account/address-list/style.css @@ -5,7 +5,7 @@ } .address-list .box { - max-width: 40em; + max-width: 30em; } .address-list .form { @@ -15,19 +15,30 @@ } .address { - color: #555; - padding: .5em; -} -.address p.consignee -{ - font-weight: bold; + padding: 1em; + border-bottom: 1px solid #DDD; } .address p { - font-size: 1.4em; margin: 0.2em 0; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.address p.important +{ + font-size: 1.2em; } .address .actions { - text-align: right; + float: right; +} +.address .actions > * +{ + display: inline-block; + vertical-align: middle; +} +.address .actions > input +{ + margin: .6em; } diff --git a/web/forms/account/address-list/ui.xml b/web/forms/account/address-list/ui.xml index e7265523..1fed18e4 100755 --- a/web/forms/account/address-list/ui.xml +++ b/web/forms/account/address-list/ui.xml @@ -31,47 +31,45 @@
-
- - - -
-

- -

-

- -

-

- , - -

-
- - - -
+ + + +
+
+ + +
- - -
+

+ +

+

+ +

+

+ , + +

+
+
+
diff --git a/web/forms/account/address/style.css b/web/forms/account/address/style.css index d69c3786..6b4daad6 100755 --- a/web/forms/account/address/style.css +++ b/web/forms/account/address/style.css @@ -5,15 +5,15 @@ } .address .box { - max-width: 40em; + max-width: 30em; + padding: 2em; } -.address .box .body +.address .form { margin: 0 auto; max-width: 25em; - padding: 3em; } -div.form-group +.address .form-group { padding: 0.4em; } diff --git a/web/forms/account/address/ui.xml b/web/forms/account/address/ui.xml index f5dcce6b..e1819806 100755 --- a/web/forms/account/address/ui.xml +++ b/web/forms/account/address/ui.xml @@ -36,7 +36,7 @@
-
+
diff --git a/web/forms/account/conf/style.css b/web/forms/account/conf/style.css index 8ec11b8c..ece49089 100755 --- a/web/forms/account/conf/style.css +++ b/web/forms/account/conf/style.css @@ -5,13 +5,13 @@ } .conf .box { - max-width: 40em; + max-width: 30em; + padding: 2em; } .conf .form { margin: 0 auto; max-width: 25em; - padding: 2em; } .conf .form-group { diff --git a/web/forms/admin/access-log/style.css b/web/forms/admin/access-log/style.css index 35a35eb1..9a6b0cfe 100755 --- a/web/forms/admin/access-log/style.css +++ b/web/forms/admin/access-log/style.css @@ -1,15 +1,36 @@ .access-log { padding: 1em; - min-width: 35em; } .access-log .box { - max-width: 50em; + max-width: 25em; margin: 0 auto; } -.access-log .htk-grid tbody tr +.access-log .form { - height: 3.4em; + padding: 2em; +} +.access-log .form > p +{ + font-size: 1.2em; + margin: .1em 0; +} + +/* List */ + +.access-log .list +{ + margin-top: 1em; +} +.access-log .item +{ + display: block; + padding: 1em; + border-bottom: 1px solid #DDD; +} +.access-log .item > p +{ + margin: .1em 0; } diff --git a/web/forms/admin/access-log/ui.xml b/web/forms/admin/access-log/ui.xml index 5578cb2b..d575e504 100755 --- a/web/forms/admin/access-log/ui.xml +++ b/web/forms/admin/access-log/ui.xml @@ -1,14 +1,17 @@ - - - + + - - SELECT Id_Cliente, Cliente, Telefono, movil - FROM vn2008.Clientes WHERE Id_Cliente = #user + + + SELECT Id_Cliente, Cliente, Telefono, movil + FROM vn2008.Clientes WHERE Id_Cliente = #user + - + + + @@ -18,63 +21,57 @@
- - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
+
+

+ +

+

+ +

+

+ +

+

+ +

+
+
+
- - - SELECT u.date_time, a.platform, a.browser, a.version, a.javascript, a.cookies - FROM visit_user u - JOIN visit_access c ON u.access_id = c.id - JOIN visit_agent a ON c.agent_id = a.id - WHERE u.user_id = #user - ORDER BY u.date_time DESC - LIMIT 30 + + + + SELECT u.date_time, a.platform, a.browser, a.version, a.javascript, a.cookies + FROM visit_user u + JOIN visit_access c ON u.access_id = c.id + JOIN visit_agent a ON c.agent_id = a.id + WHERE u.user_id = #user + ORDER BY u.date_time DESC + LIMIT 8 + - + + + - - - - - - - + +
+

+ +

+

+ , + + +

+
+
+
diff --git a/web/forms/admin/items/style.css b/web/forms/admin/items/style.css index 2d290eb3..ff9ba1be 100755 --- a/web/forms/admin/items/style.css +++ b/web/forms/admin/items/style.css @@ -5,14 +5,13 @@ } .items .box { - max-width: 40em; + max-width: 30em; padding: 2em; } -.items .body +.items .form { - max-width: 20em; + max-width: 25em; margin: auto; - padding: 0; } .items .form-group { diff --git a/web/forms/admin/items/ui.xml b/web/forms/admin/items/ui.xml index 629059c8..65f97fbb 100755 --- a/web/forms/admin/items/ui.xml +++ b/web/forms/admin/items/ui.xml @@ -4,7 +4,7 @@
-
+
diff --git a/web/forms/admin/links/links.js b/web/forms/admin/links/links.js index b695fd2a..41c14fa7 100755 --- a/web/forms/admin/links/links.js +++ b/web/forms/admin/links/links.js @@ -3,14 +3,9 @@ Vn.Links = new Class ({ Extends: Vn.Form - ,activate: function () + ,repeaterFunc: function (res, form) { - this.$('column-link').renderer = this.linkRenderer; - } - - ,linkRenderer: function (column, form) - { - column.href = form.get ('link'); + res.$('link').href = form.get ('link'); } }); diff --git a/web/forms/admin/links/style.css b/web/forms/admin/links/style.css index 962e8734..a2a73f3a 100755 --- a/web/forms/admin/links/style.css +++ b/web/forms/admin/links/style.css @@ -5,14 +5,34 @@ } .cpanel .box { - max-width: 60em; - min-width: 25em; + max-width: 30em; } -.cpanel tbody tr + +/* Items */ + +.cpanel .item { - height: 3.5em; + display: block; + padding: 1em; + border-bottom: 1px solid #DDD; } -.cpanel tbody td img +.cpanel .item:hover { - min-height: 1.6em; + background-color: rgba(1, 1, 1, 0.05); +} +.cpanel .item > img +{ + margin: .2em 0; + margin-right: 1em; + float: left; + max-height: 3em; + max-width: 3em; +} +.cpanel .item > p +{ + margin: .1em 0; +} +.cpanel .item > p.important +{ + font-size: 1.2em; } diff --git a/web/forms/admin/links/ui.xml b/web/forms/admin/links/ui.xml index 401ec4dd..79540fd9 100755 --- a/web/forms/admin/links/ui.xml +++ b/web/forms/admin/links/ui.xml @@ -4,17 +4,29 @@
- + SELECT image, name, description, link FROM link ORDER BY name - - - - + + + +

+ +

+

+ +

+
+
+
diff --git a/web/forms/admin/photos/style.css b/web/forms/admin/photos/style.css index b0db23fd..c25d6923 100755 --- a/web/forms/admin/photos/style.css +++ b/web/forms/admin/photos/style.css @@ -5,9 +5,10 @@ } .photos .box { - max-width: 40em; + max-width: 30em; + padding: 2em; } -.photos form +.photos .form { margin: 0 auto; max-width: 25em; diff --git a/web/forms/admin/photos/ui.xml b/web/forms/admin/photos/ui.xml index 2b50b154..1b074152 100755 --- a/web/forms/admin/photos/ui.xml +++ b/web/forms/admin/photos/ui.xml @@ -4,7 +4,7 @@
-
+
- diff --git a/web/forms/admin/shelves/style.css b/web/forms/admin/shelves/style.css index b2f20fec..c97b766f 100755 --- a/web/forms/admin/shelves/style.css +++ b/web/forms/admin/shelves/style.css @@ -5,14 +5,13 @@ } .shelves .box { - max-width: 40em; + max-width: 30em; padding: 2em; } -.shelves .body +.shelves .form { - max-width: 20em; + max-width: 25em; margin: auto; - padding: 0; } .shelves .form-group { diff --git a/web/forms/admin/shelves/ui.xml b/web/forms/admin/shelves/ui.xml index 8b8c9dfd..9b7dae07 100755 --- a/web/forms/admin/shelves/ui.xml +++ b/web/forms/admin/shelves/ui.xml @@ -14,7 +14,7 @@
-
+

diff --git a/web/forms/admin/users/users.js b/web/forms/admin/users/users.js index 42996354..e04f0b3f 100755 --- a/web/forms/admin/users/users.js +++ b/web/forms/admin/users/users.js @@ -3,11 +3,11 @@ Vn.Users = new Class ({ Extends: Vn.Form - ,onAccessLogClick: function (column, value) + ,onAccessLogClick: function (button, form) { this.hash.set ({ 'form': 'admin/access-log' - ,'user': value + ,'user': form.get ('id') }); } diff --git a/web/forms/admin/visits/style.css b/web/forms/admin/visits/style.css index a93e51ba..a8bfe4c3 100755 --- a/web/forms/admin/visits/style.css +++ b/web/forms/admin/visits/style.css @@ -5,13 +5,25 @@ } .visits .box { - max-width: 80em; + max-width: 60em; margin: 0 auto; } +.visits .conns-form +{ + padding: 1.5em; + font-size: 1.4em; + text-align: right; +} +.visits .form +{ + padding: 2em; + max-width: 25em; +} + /* Steps */ -div.step +.visits .step { display: none; } diff --git a/web/forms/admin/visits/ui.xml b/web/forms/admin/visits/ui.xml index 49af7e8a..e37e61c0 100755 --- a/web/forms/admin/visits/ui.xml +++ b/web/forms/admin/visits/ui.xml @@ -22,118 +22,95 @@

- - - - - - - - - - - -
- - - - - -
- - - - - -
+
+ + + + active sessions +
- - SELECT s.id, c.Cliente, e.date_time login, is_new, - s.date_time last_activity, a.platform, a.browser, a.version - FROM user_session s - JOIN visit_user e ON s.visit_user_id = e.id - JOIN visit_access c ON e.access_id = c.id - JOIN visit_agent a ON c.agent_id = a.id - JOIN visit v ON a.visit_id = v.id - JOIN account.user u ON e.user_id = u.id - JOIN vn2008.Clientes c ON e.user_id = c.Id_cliente - ORDER BY last_activity DESC + + + SELECT s.id, c.Cliente, e.date_time login, is_new, + s.date_time last_activity, a.platform, a.browser, a.version + FROM user_session s + JOIN visit_user e ON s.visit_user_id = e.id + JOIN visit_access c ON e.access_id = c.id + JOIN visit_agent a ON c.agent_id = a.id + JOIN visit v ON a.visit_id = v.id + JOIN account.user u ON e.user_id = u.id + JOIN vn2008.Clientes c ON e.user_id = c.Id_cliente + ORDER BY last_activity DESC + - - + -
- - - - - - - - - - - - - - - - - - - -
- - - - - -
- - - - - -
- - - - - -
- - - - - -
+
+
+ + + + +
+
+ + + + +
+
+ VisitsTotal: + + + +
+
+ NewVisitsTotal: + + + +
+
- - SELECT browser - ,MIN(CAST(version AS DECIMAL(4,1))) min_version - ,MAX(CAST(version AS DECIMAL(4,1))) max_version - ,MAX(e.date_time) last_visit - ,COUNT(DISTINCT c.id) visits - ,SUM(is_new) new_visits - FROM visit_user e - JOIN visit_access c ON e.access_id = c.id - JOIN visit_agent a ON c.agent_id = a.id - JOIN visit v ON a.visit_id = v.id - WHERE e.date_time BETWEEN TIMESTAMP(#from,'00:00:00') AND TIMESTAMP(#to,'23:59:59') - GROUP BY browser ORDER BY visits DESC + + + SELECT browser + ,MIN(CAST(version AS DECIMAL(4,1))) min_version + ,MAX(CAST(version AS DECIMAL(4,1))) max_version + ,MAX(e.date_time) last_visit + ,COUNT(DISTINCT c.id) visits + ,SUM(is_new) new_visits + FROM visit_user e + JOIN visit_access c ON e.access_id = c.id + JOIN visit_agent a ON c.agent_id = a.id + JOIN visit v ON a.visit_id = v.id + WHERE e.date_time BETWEEN TIMESTAMP(#from,'00:00:00') AND TIMESTAMP(#to,'23:59:59') + GROUP BY browser ORDER BY visits DESC + - - + + + + diff --git a/web/forms/cms/contact/style.css b/web/forms/cms/contact/style.css index fea49768..00aeb54a 100755 --- a/web/forms/cms/contact/style.css +++ b/web/forms/cms/contact/style.css @@ -5,19 +5,19 @@ } .contact .box { - max-width: 40em; + max-width: 30em; + padding: 2em; } -.contact .body +.contact .form { position: relative; text-align: left; max-width: 25em; - margin: 1em auto; + margin: 0 auto; } .contact form { margin: 0 auto; - max-width: 25em; } .contact form p { diff --git a/web/forms/cms/contact/ui.xml b/web/forms/cms/contact/ui.xml index 1f53409b..e7ae453f 100755 --- a/web/forms/cms/contact/ui.xml +++ b/web/forms/cms/contact/ui.xml @@ -4,7 +4,7 @@
-
+

FillFormData

diff --git a/web/forms/ecomerce/basket/style.css b/web/forms/ecomerce/basket/style.css index f563b956..a57d55a4 100755 --- a/web/forms/ecomerce/basket/style.css +++ b/web/forms/ecomerce/basket/style.css @@ -54,6 +54,7 @@ margin-right: 1em; float: left; border-radius: 50%; + height: 3.2em; } .basket-line > p { diff --git a/web/forms/ecomerce/basket/ui.xml b/web/forms/ecomerce/basket/ui.xml index d1fa0d76..c8d57f0f 100755 --- a/web/forms/ecomerce/basket/ui.xml +++ b/web/forms/ecomerce/basket/ui.xml @@ -28,8 +28,8 @@ 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 + JOIN vn2008.Articles a ON a.Id_Article = i.item_id + LEFT JOIN vn2008.Origen o ON a.id_origen = o.id @@ -38,7 +38,7 @@ form="iter" column="ticket_id" class="delete" - tip="_SeeOrder" + tip="_Remove" image="image/delete.svg" on-click="onDeleteClick"/>

diff --git a/web/forms/ecomerce/orders/orders.js b/web/forms/ecomerce/orders/orders.js index c5630a75..9218e5d6 100755 --- a/web/forms/ecomerce/orders/orders.js +++ b/web/forms/ecomerce/orders/orders.js @@ -12,10 +12,10 @@ Vn.Orders = new Class { this.hash.set ({'form': 'ecomerce/basket'}); } - - ,onShowClick: function (button, form) + + ,repeaterFunc: function (res, form) { - this.hash.set ({ + res.$('link').href = this.hash.make ({ 'form': 'ecomerce/ticket', 'ticket': form.get ('ticket_id') }); @@ -34,7 +34,7 @@ Vn.Orders = new Class ,onPayButtonClick: function () { var company = 442; - var amount = this.$('debt').value; + var amount = -this.$('debt').value; amount = amount <= 0 ? null : amount; diff --git a/web/forms/ecomerce/orders/style.css b/web/forms/ecomerce/orders/style.css index ba771a9a..80baa40a 100755 --- a/web/forms/ecomerce/orders/style.css +++ b/web/forms/ecomerce/orders/style.css @@ -4,7 +4,7 @@ } .orders .box { - max-width: 30em; + max-width: 25em; } /* Balance */ @@ -48,22 +48,22 @@ /* List */ -.order-box +.orders .item { + display: block; padding: 1em; border-bottom: 1px solid #DDD; } -.order-box > p +.orders .item:hover +{ + background-color: rgba(1, 1, 1, 0.05); +} +.orders .item > p { margin: .1em 0; } -.order-box > p.important +.orders .item > p.important { font-size: 1.2em; } -.order-box > .show-order -{ - margin: 1.6em .5em; - float: right; -} diff --git a/web/forms/ecomerce/orders/ui.xml b/web/forms/ecomerce/orders/ui.xml index 93ba8ca4..c0384a7b 100755 --- a/web/forms/ecomerce/orders/ui.xml +++ b/web/forms/ecomerce/orders/ui.xml @@ -3,7 +3,7 @@ CALL customer_get_debt_by_company (); - SELECT * FROM t_customer_debt; + SELECT -amount amount FROM t_customer_debt; DROP TEMPORARY TABLE t_customer_debt; @@ -45,21 +45,14 @@

- + CALL ticket_list (); - diff --git a/web/forms/news/new/style.css b/web/forms/news/new/style.css index ef3e11b0..e7aa96d5 100755 --- a/web/forms/news/new/style.css +++ b/web/forms/news/new/style.css @@ -5,15 +5,14 @@ } .new .box { - max-width: 50em; - margin: 0 auto; + max-width: 35em; + padding: 2em; } /* Form */ .new .form { - padding: 2em; } .new textarea { diff --git a/web/forms/news/news/news.js b/web/forms/news/news/news.js index 0fa7b61c..3cd36773 100755 --- a/web/forms/news/news/news.js +++ b/web/forms/news/news/news.js @@ -11,9 +11,15 @@ Vn.News = new Class }); } - ,onEditClick: function (column, newId) + ,onEditClick: function (button, form) { - this.editNew (newId); + this.editNew (button.value); + } + + ,onDeleteClick: function (button, form) + { + if (confirm (_('ReallyDelete'))) + form.deleteRow (); } ,onAddClick: function () diff --git a/web/forms/news/news/style.css b/web/forms/news/news/style.css index c355c3ce..227a3604 100755 --- a/web/forms/news/news/style.css +++ b/web/forms/news/news/style.css @@ -1,10 +1,47 @@ .news { padding: 1em; - min-width: 35em; } .news .box { - max-width: 60em; + max-width: 35em; margin: 0 auto; } + +/* Items */ + +.news .item +{ + padding: 1em; + border-bottom: 1px solid #DDD; +} +.news .item > p +{ + margin: .1em 0; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.news .item > p.important +{ + font-size: 1.2em; +} +.news .item > .photo +{ + float: left; + margin-right: 1em; + height: 5em; + width: 5em; +} +.news .item > .photo > img +{ + display: block; + margin: 0 auto; + max-height: 100%; + max-width: 100%; + border-radius: .3em; +} +.news .item > button +{ + float: right; +} diff --git a/web/forms/news/news/ui.xml b/web/forms/news/news/ui.xml index b1694923..419eea2c 100755 --- a/web/forms/news/news/ui.xml +++ b/web/forms/news/news/ui.xml @@ -12,15 +12,6 @@
- - - SELECT n.id, c.Cliente, priority, image, - CONCAT(LEFT(n.title, 25), '...') title - FROM news n - JOIN vn2008.Clientes c ON n.user_id = c.Id_Cliente - ORDER BY priority, n.date_time DESC - - + + + + SELECT n.id, c.Cliente, priority, image, title + FROM news n + JOIN vn2008.Clientes c ON n.user_id = c.Id_Cliente + ORDER BY priority, n.date_time DESC + + + +
+ + +
+ +
+

+ +

+

+ +

+

+ Priority + +

+
+
+
diff --git a/web/image/incognito.svg b/web/image/incognito.svg new file mode 100644 index 00000000..e7ccf679 --- /dev/null +++ b/web/image/incognito.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/web/image/supplant.png b/web/image/supplant.png deleted file mode 100755 index d596c2bf..00000000 Binary files a/web/image/supplant.png and /dev/null differ diff --git a/web/image/supplant.svg b/web/image/supplant.svg new file mode 100644 index 00000000..743eb22c --- /dev/null +++ b/web/image/supplant.svg @@ -0,0 +1,81 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/web/js/hedera/gui.css b/web/js/hedera/gui.css index 73c462a0..0e2338b0 100755 --- a/web/js/hedera/gui.css +++ b/web/js/hedera/gui.css @@ -161,6 +161,9 @@ .vn-gui .welcome { display: block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; } .vn-gui .supplant { @@ -170,6 +173,12 @@ .vn-gui .supplant > span { font-size: 1.1em; + + max-width: 10em; + display: inline-block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; } .vn-gui .supplant > button { diff --git a/web/js/hedera/gui.js b/web/js/hedera/gui.js index f609cd02..b2c88d47 100755 --- a/web/js/hedera/gui.js +++ b/web/js/hedera/gui.js @@ -20,7 +20,7 @@ Vn.Gui = new Class var sql = 'SELECT default_form, image_dir, image_host FROM config;' +'SELECT production_domain, test_domain FROM config;' - +'SELECT name FROM customer_account;' + +'SELECT name FROM customer_user;' +'CALL form_list ();'; this.conn.execQuery (sql, this.onMainQueryDone.bind (this)); }, @@ -69,6 +69,9 @@ Vn.Gui = new Class Vn.Cookie.set ('hedera_cookies', true); Htk.Toast.showWarning (_('By using this site you accept cookies')); } + + if (Vn.Cookie.check ('hedera_supplant')) + this.supplantUser (Vn.Cookie.get ('hedera_supplant')); } ,show: function () @@ -293,6 +296,8 @@ Vn.Gui = new Class this.newVersionBlock = false; } + + //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Menu ,createMenu: function (res, sectionMap, parent, ul) { @@ -322,16 +327,16 @@ Vn.Gui = new Class li.appendChild (submenu); li.addEventListener ('mouseover', - this.onLiMouseHover.bind (this, submenu, a)); + this._onLiMouseHover.bind (this, submenu, a)); li.addEventListener ('mouseout', - this.onLiMouseOut.bind (this)); + this._onLiMouseOut.bind (this)); this.createMenu (res, sectionMap, formId, submenu); } } } - ,onLiMouseHover: function (submenu, parent) + ,_onLiMouseHover: function (submenu, parent) { if (this.menuShown) return; @@ -345,7 +350,7 @@ Vn.Gui = new Class submenu.style.top = rect.top +'px'; } - ,onLiMouseOut: function () + ,_onLiMouseOut: function () { this.timeout = setTimeout (this.hideSubmenu.bind (this), 160); } @@ -365,6 +370,8 @@ Vn.Gui = new Class } } + //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Forms + ,_onFormChange: function () { var formPath = this.hashParam.value; @@ -460,6 +467,8 @@ Vn.Gui = new Class } } + //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Reports + ,openReport: function (reportName, batch) { this.loaderPush (); @@ -482,6 +491,8 @@ Vn.Gui = new Class report.open (batch); } + //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Supplant + ,supplantUser: function (userId, callback) { var batch = new Sql.Batch (); @@ -496,7 +507,7 @@ Vn.Gui = new Class ,_onUserSupplant: function (userId, callback, resultSet) { this._supplantClear (); - this._supplanted = userId; + Vn.Cookie.set ('hedera_supplant', userId); resultSet.fetchResult (); var userName = resultSet.fetchValue (); @@ -510,10 +521,10 @@ Vn.Gui = new Class ,_supplantClear: function () { - if (this._supplanted) + if (Vn.Cookie.check ('hedera_supplant')) { Vn.Node.hide (this.$('supplant')); - this._supplanted = null; + Vn.Cookie.unset ('hedera_supplant'); } } @@ -528,6 +539,8 @@ Vn.Gui = new Class this._supplantClear (); this._onFormChange (); } + + //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Destroy ,_destroy: function () { diff --git a/web/js/hedera/style.css b/web/js/hedera/style.css index 6bad5a12..787744fe 100755 --- a/web/js/hedera/style.css +++ b/web/js/hedera/style.css @@ -84,6 +84,23 @@ p margin: 0.8em 0; } +/* Focus outline */ + +*:focus +{ + outline: 1px solid rgba(1, 1, 1, 0.15); + -moz-outline-radius: .1em; +} +button::-moz-focus-inner +{ + border: none; +} +select:focus +{ + color: transparent; + text-shadow: 0 0 0 #333; +} + /* Inputs */ input[type=text], diff --git a/web/js/vn/builder.js b/web/js/vn/builder.js index fa44974e..1560f086 100755 --- a/web/js/vn/builder.js +++ b/web/js/vn/builder.js @@ -346,6 +346,7 @@ Vn.Builder = new Class ,propCompile: function (context, klass, props, node, attribute, value) { + var isLink = false; var newValue = null; var propName = attribute.replace (/-./g, this._replaceFunc); var propInfo = klass.Properties[propName]; @@ -375,18 +376,20 @@ Vn.Builder = new Class newValue = this._translateValue (value); break; case Function: - newValue = this._getMethod (value).bind (this.signalData); + var method = this._getMethod (value); + newValue = method ? method.bind (this.signalData) : null; break; default: if (propInfo.enumType) newValue = propInfo.enumType[value]; - break; + else if (propInfo.type instanceof Function) + isLink = true; } - if (newValue !== null && newValue !== undefined) - props[propName] = newValue; - else if (propInfo.type instanceof Function) + if (isLink) this._addLink (context, propName, value); + else if (newValue !== null && newValue !== undefined) + props[propName] = newValue; else this._showError ('Attribute \'%s\' invalid for tag \'%s\'', attribute, node.tagName);