From 6cb13727a7d50389574187995953a96f73ae418a Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Fri, 6 Sep 2019 14:54:50 +0200 Subject: [PATCH] _onFormLoad does nothing if gui is not ready --- debian/changelog | 2 +- js/hedera/gui.js | 481 ++++++++++++++++++++--------------------------- package.json | 2 +- 3 files changed, 209 insertions(+), 276 deletions(-) diff --git a/debian/changelog b/debian/changelog index 13b0a138..ed66187c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -hedera-web (1.406.63) stable; urgency=low +hedera-web (1.406.64) stable; urgency=low * Initial Release. diff --git a/js/hedera/gui.js b/js/hedera/gui.js index c892b224..243f46df 100644 --- a/js/hedera/gui.js +++ b/js/hedera/gui.js @@ -1,23 +1,18 @@ -var Module = require ('./module'); -var Tpl = require ('./gui.xml'); +var Module = require('./module'); +var Tpl = require('./gui.xml'); -require ('./gui.css'); +require('./gui.css'); -module.exports = new Class -({ +module.exports = new Class({ Extends: Htk.Component, - Properties: - { - conn: - { + Properties: { + conn: { type: Db.Connection - ,set: function (x) - { - this.link ({_conn: x}, {'loading-changed': this._onConnLoadChange }); + ,set: function(x) { + this.link({_conn: x}, {'loading-changed': this._onConnLoadChange }); } - ,get: function () - { + ,get: function() { return this._conn; } } @@ -34,25 +29,22 @@ module.exports = new Class ,_scrollTimeout: null ,_navbarVisible: true - ,initialize: function (props) - { - this.builderInitString (Tpl); + ,initialize: function(props) { + this.builderInitString(Tpl); this.loadingCount = 0; - this.$('background').onclick = function () {}; + this.$('background').onclick = function() {}; - this.$('menu-button').addEventListener ('click', function (event) - { - event.stopPropagation (); - this.showMenu (); - }.bind (this)); + this.$('menu-button').addEventListener('click', function(event) { + event.stopPropagation(); + this.showMenu(); + }.bind(this)); - this.$('left-panel').addEventListener ('click', function (event) - { - event.stopPropagation (); + this.$('left-panel').addEventListener('click', function(event) { + event.stopPropagation(); }); - this.parent (props); + this.parent(props); this.$('social-bar').conn = this._conn; @@ -61,287 +53,256 @@ module.exports = new Class +'SELECT url FROM imageConfig;' +'SELECT dbproduccion FROM vn2008.tblContadores;' +'SELECT productionDomain, testDomain FROM config;'; - this._conn.execQuery (sql, this.onMainQueryDone.bind (this)); + this._conn.execQuery(sql, this.onMainQueryDone.bind(this)); - this.loadMenu (); + this.loadMenu(); } - ,show: function () - { + ,show: function() { if (this._shown) return; this._shown = true; - this.doc.body.appendChild (this.node); - Htk.Toast.pushTop (this.$('form-holder')); + this.doc.body.appendChild(this.node); + Htk.Toast.pushTop(this.$('form-holder')); - if (Vn.isMobile ()) - { - this._onScrollHandler = this._onScroll.bind (this); - window.addEventListener ('scroll', this._onScrollHandler ); + if (Vn.isMobile()) { + this._onScrollHandler = this._onScroll.bind(this); + window.addEventListener('scroll', this._onScrollHandler ); } this.hash = Vn.Hash; - this.formParam = new Vn.HashParam ({key: 'form'}); - this.formParam.on ('changed', this._onFormChange, this); + this.formParam = new Vn.HashParam({key: 'form'}); + this.formParam.on('changed', this._onFormChange, this); - if (!localStorage.getItem ('hederaCookies')) - { - localStorage.setItem ('hederaCookies', true); - Htk.Toast.showWarning (_('By using this site you accept cookies')); + if (!localStorage.getItem('hederaCookies')) { + localStorage.setItem('hederaCookies', true); + Htk.Toast.showWarning(_('By using this site you accept cookies')); } - this.supplantInit (); + this.supplantInit(); } - ,hide: function () - { + ,hide: function() { if (!this._shown) return; this._shown = false; - if (Vn.isMobile ()) - window.removeEventListener ('scroll', this._onScrollHandler); + if (Vn.isMobile()) + window.removeEventListener('scroll', this._onScrollHandler); - Htk.Toast.popTop (); - this.formParam.unref (); - this.closeForm (); - this.hideMenu (); - Vn.Node.remove (this.node); + Htk.Toast.popTop(); + this.formParam.unref(); + this.closeForm(); + this.hideMenu(); + Vn.Node.remove(this.node); } - ,logout: function () - { - this.onLogoutClick (); + ,logout: function() { + this.onLogoutClick(); } - ,onLogoutClick: function () - { - this._conn.close (this._onConnClose.bind (this)); + ,onLogoutClick: function() { + this._conn.close(this._onConnClose.bind(this)); } - ,_onConnClose: function () - { - this.signalEmit ('logout'); + ,_onConnClose: function() { + this.signalEmit('logout'); } - ,_onConnLoadChange: function (conn, isLoading) - { + ,_onConnLoadChange: function(conn, isLoading) { if (isLoading) - this.loaderPush (); + this.loaderPush(); else - this.loaderPop (); + this.loaderPop(); } - ,onMainQueryDone: function (resultSet) - { + ,onMainQueryDone: function(resultSet) { // Retrieving the user name - var userName = resultSet.fetchValue (); - Vn.Node.setText (this.$('user-name'), userName); + var userName = resultSet.fetchValue(); + Vn.Node.setText(this.$('user-name'), userName); // Retrieving configuration parameters - var res = resultSet.fetchResult (); + var res = resultSet.fetchResult(); var columns = res.columns; - if (res.next ()) + if (res.next()) for (var i = 0; i < res.columns.length; i++) - Vn.Config[columns[i].name] = res.get (columns[i].name); + Vn.Config[columns[i].name] = res.get(columns[i].name); // Retrieving configuration parameters - Vn.Config.imageUrl = resultSet.fetchValue (); + Vn.Config.imageUrl = resultSet.fetchValue(); // Retrieving configuration parameters - var isTesting = !resultSet.fetchValue (); + var isTesting = !resultSet.fetchValue(); - if (isTesting) - { + if (isTesting) { this.$('dev-info').style.display = 'block'; - this.$('version').textContent = Vn.Cookie.get ('vnVersion'); + this.$('version').textContent = Vn.Cookie.get('vnVersion'); } // Retrieving configuration parameters - var res = resultSet.fetchResult (); + var res = resultSet.fetchResult(); - if (res.next () && res.get ('testDomain')) - { - if (location.host != res.get ('productionDomain')) - { + if (res.next() && res.get('testDomain')) { + if (location.host != res.get('productionDomain')) { var linkText = 'Old website'; var linkField = 'productionDomain'; - } - else - { + } else { var linkText = 'Test the new website'; var linkField = 'testDomain'; } - Vn.Node.setText (this.$('test-link'), _(linkText)); - this.$('test-link').href = '//'+ res.get (linkField); + Vn.Node.setText(this.$('test-link'), _(linkText)); + this.$('test-link').href = '//'+ res.get(linkField); this.$('test-link').style.display = 'block'; - } - else + } else this.$('test-link').style.display = 'none'; // Loading the default form - this._onFormChange (); + this._onFormChange(); } - ,loadMenu: function () - { + ,loadMenu: function() { var sql = 'SELECT * FROM myMenu'; - this._conn.execQuery (sql, this._onMenuLoad.bind (this)); + this._conn.execQuery(sql, this._onMenuLoad.bind(this)); } - ,_onMenuLoad: function (resultSet) - { + ,_onMenuLoad: function(resultSet) { // Retrieving menu sections - var res = resultSet.fetchResult (); + var res = resultSet.fetchResult(); var sectionMap = {}; if (res) - for (var i = 0; res.next (); i++) - { - var parent = res.get ('parentFk'); + for (var i = 0; res.next(); i++) { + var parent = res.get('parentFk'); if (!sectionMap[parent]) sectionMap[parent] = []; - sectionMap[parent].push (i); + sectionMap[parent].push(i); } - Vn.Node.removeChilds (this.$('main-menu')); - this.createMenu (res, sectionMap, null, this.$('main-menu')); + Vn.Node.removeChilds(this.$('main-menu')); + this.createMenu(res, sectionMap, null, this.$('main-menu')); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Menu - ,createMenu: function (res, sectionMap, parent, ul) - { + ,createMenu: function(res, sectionMap, parent, ul) { var sections = sectionMap[parent]; - for (var i = 0; i < sections.length; i++) - { + for (var i = 0; i < sections.length; i++) { res.row = sections[i]; - var li = this.createElement ('li'); - ul.appendChild (li); + var li = this.createElement('li'); + ul.appendChild(li); - var text = this.createTextNode (_(res.get ('description'))); + var text = this.createTextNode(_(res.get('description'))); - var a = this.createElement ('a'); + var a = this.createElement('a'); - if (res.get ('path')) - { - a.href = Vn.Hash.make ({'form': res.get ('path')}); - this.menuOptions[res.get ('path')] = a; + if (res.get('path')) { + a.href = Vn.Hash.make({'form': res.get('path')}); + this.menuOptions[res.get('path')] = a; } - a.appendChild (text); - li.appendChild (a); + a.appendChild(text); + li.appendChild(a); - var formId = res.get ('id'); + var formId = res.get('id'); - if (sectionMap[formId]) - { - var submenu = this.createElement ('ul'); + if (sectionMap[formId]) { + var submenu = this.createElement('ul'); submenu.className = 'submenu'; - li.appendChild (submenu); + li.appendChild(submenu); - li.addEventListener ('mouseover', - this._onLiMouseHover.bind (this, submenu, a)); - li.addEventListener ('mouseout', - this._onLiMouseOut.bind (this)); + li.addEventListener('mouseover', + this._onLiMouseHover.bind(this, submenu, a)); + li.addEventListener('mouseout', + this._onLiMouseOut.bind(this)); - this.createMenu (res, sectionMap, formId, submenu); + this.createMenu(res, sectionMap, formId, submenu); } } } - ,_onLiMouseHover: function (submenu, parent) - { + ,_onLiMouseHover: function(submenu, parent) { if (this.menuShown) return; - this.hideSubmenu (); + this.hideSubmenu(); this.activeSubmenu = submenu; - var rect = parent.getBoundingClientRect (); - Vn.Node.addClass (submenu, 'popup'); + var rect = parent.getBoundingClientRect(); + Vn.Node.addClass(submenu, 'popup'); submenu.style.left = rect.right +'px'; submenu.style.top = rect.top +'px'; } - ,_onLiMouseOut: function () - { - this.timeout = setTimeout (this.hideSubmenu.bind (this), 160); + ,_onLiMouseOut: function() { + this.timeout = setTimeout(this.hideSubmenu.bind(this), 160); } - ,hideSubmenu: function () - { + ,hideSubmenu: function() { var submenu = this.activeSubmenu; - if (submenu) - { - Vn.Node.removeClass (submenu, 'popup'); + if (submenu) { + Vn.Node.removeClass(submenu, 'popup'); submenu.style.left = ''; submenu.style.top = ''; - clearTimeout (this.timeout); + clearTimeout(this.timeout); this.activeSubmenu = null; this.timeout = 0; } } - ,showMenu: function () - { - this.showBackground (); - Vn.Node.addClass (this.$('left-panel'), 'show'); + ,showMenu: function() { + this.showBackground(); + Vn.Node.addClass(this.$('left-panel'), 'show'); this.menuShown = true; - this.hideMenuCallback = this.hideMenu.bind (this); - this.doc.addEventListener ('click', this.hideMenuCallback); + this.hideMenuCallback = this.hideMenu.bind(this); + this.doc.addEventListener('click', this.hideMenuCallback); } - ,hideMenu: function () - { + ,hideMenu: function() { if (!this.menuShown) return; - this.hideBackground (); - Vn.Node.removeClass (this.$('left-panel'), 'show'); + this.hideBackground(); + Vn.Node.removeClass(this.$('left-panel'), 'show'); this.menuShown = false; - this.doc.removeEventListener ('click', this.hideMenuCallback); + this.doc.removeEventListener('click', this.hideMenuCallback); this.hideMenuCallback = null; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Navigation bar - ,_onScroll: function () - { + ,_onScroll: function() { if (this._scrollTimeout === null) - this._scrollTimeout = setTimeout ( - this._scrollTimeoutFunc.bind (this), 150); + this._scrollTimeout = setTimeout( + this._scrollTimeoutFunc.bind(this), 150); } - ,_scrollTimeoutFunc: function () - { + ,_scrollTimeoutFunc: function() { if (!this._shown) return; var navbar = this.$('top-bar'); - var yOffset = Vn.Browser.getPageYOffset (); + var yOffset = Vn.Browser.getPageYOffset(); var showNavbar = this._lastYOffset > yOffset || yOffset < navbar.offsetHeight; - if (showNavbar !== this._navbarVisible) - { + if (showNavbar !== this._navbarVisible) { if (showNavbar) var translateY = 0; else @@ -358,227 +319,199 @@ module.exports = new Class //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Background - ,showBackground: function () - { - Vn.Node.addClass (this.$('background'), 'show'); + ,showBackground: function() { + Vn.Node.addClass(this.$('background'), 'show'); } - ,hideBackground: function () - { - Vn.Node.removeClass (this.$('background'), 'show'); + ,hideBackground: function() { + Vn.Node.removeClass(this.$('background'), 'show'); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Spinner - ,loaderPush: function () - { + ,loaderPush: function() { this.loadingCount++; if (this.loadingCount == 1) - this.$('loader').start (); + this.$('loader').start(); } - ,loaderPop: function () - { + ,loaderPop: function() { if (this.loadingCount == 0) return; this.loadingCount--; if (this.loadingCount == 0) - this.$('loader').stop (); + this.$('loader').stop(); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Forms - ,_onFormChange: function () - { + ,_onFormChange: function() { var formPath = this.formParam.value; if (!formPath) formPath = Vn.Config.defaultForm; - this.openForm (formPath, - this._onFormLoad.bind (this)); + this.openForm(formPath, + this._onFormLoad.bind(this)); } - ,openForm: function (formPath, callback) - { - this.hideMenu (); - this.loaderPush (); + ,openForm: function(formPath, callback) { + this.hideMenu(); + this.loaderPush(); - this.closeForm (); + this.closeForm(); this.requestedForm = formPath; var newChoosedOption = this.menuOptions[formPath]; - if (newChoosedOption) - { - Vn.Node.addClass (newChoosedOption, 'selected'); + if (newChoosedOption) { + Vn.Node.addClass(newChoosedOption, 'selected'); this.choosedOption = newChoosedOption; } this.activeCss = 'forms/'+ formPath +'/style.css'; - Vn.includeCss (this.activeCss); + Vn.includeCss(this.activeCss); var formInfo = this.forms[formPath]; - if (!formInfo) - { - formInfo = new Module ('forms', formPath); + if (!formInfo) { + formInfo = new Module('forms', formPath); this.forms[formPath] = formInfo; } - formInfo.addCallback (callback); + formInfo.addCallback(callback); } - ,_onFormLoad: function (formInfo) - { - this.loaderPop (); + ,_onFormLoad: function(formInfo) { + this.loaderPop(); - if (formInfo.error) - { - Htk.Toast.showError (_('Error loading form')); + if (formInfo.error) + return Htk.Toast.showError(_('Error loading form')); + if (!this._shown) return; - } - this.activeForm = new formInfo.klass (this, formInfo); - this.activeForm.open (); + this.activeForm = new formInfo.klass(this, formInfo); + this.activeForm.open(); } - ,setForm: function (form) - { - Vn.Node.removeChilds (this.$('form-holder')); + ,setForm: function(form) { + Vn.Node.removeChilds(this.$('form-holder')); - if (form) - { - this.$('form-holder').appendChild (form); - setTimeout (this._onSetFormTimeout.bind (this), 0); + if (form) { + this.$('form-holder').appendChild(form); + setTimeout(this._onSetFormTimeout.bind(this), 0); } } - ,_onSetFormTimeout: function () - { - Vn.Node.addClass (this.$('form-holder'), 'show'); + ,_onSetFormTimeout: function() { + Vn.Node.addClass(this.$('form-holder'), 'show'); } - ,setTitle: function (title) - { - Vn.Node.removeChilds (this.$('title')); + ,setTitle: function(title) { + Vn.Node.removeChilds(this.$('title')); if (title) - this.$('title').appendChild (title); + this.$('title').appendChild(title); } - ,setActions: function (actions) - { - Vn.Node.removeChilds (this.$('action-bar')); + ,setActions: function(actions) { + Vn.Node.removeChilds(this.$('action-bar')); if (actions) - this.$('action-bar').appendChild (actions); + this.$('action-bar').appendChild(actions); } - ,closeForm: function () - { - if (this.activeForm) - { - Vn.Node.removeClass (this.$('form-holder'), 'show'); - this.activeForm.close (); - this.activeForm.unref (); + ,closeForm: function() { + if (this.activeForm) { + Vn.Node.removeClass(this.$('form-holder'), 'show'); + this.activeForm.close(); + this.activeForm.unref(); this.activeForm = null; } - if (this.activeCss) - { - Vn.excludeCss (this.activeCss); + if (this.activeCss) { + Vn.excludeCss(this.activeCss); this.activeCss = null; } - if (this.choosedOption) - { - Vn.Node.removeClass (this.choosedOption, 'selected'); + if (this.choosedOption) { + Vn.Node.removeClass(this.choosedOption, 'selected'); this.choosedOption = null; } } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Reports - ,openReport: function (reportName, batch) - { - this.loaderPush (); + ,openReport: function(reportName, batch) { + this.loaderPush(); - var module = new Module ('reports', reportName); - module.addCallback (this._onReportLoad.bind (this, batch)); + var module = new Module('reports', reportName); + module.addCallback(this._onReportLoad.bind(this, batch)); } - ,_onReportLoad: function (batch, module) - { - this.loaderPop (); + ,_onReportLoad: function(batch, module) { + this.loaderPop(); - if (module.error) - { - Htk.Toast.showError (_('Error loading report')); + if (module.error) { + Htk.Toast.showError(_('Error loading report')); return; } - var report = new module.klass (module, this); - report.open (batch); + var report = new module.klass(module, this); + report.open(batch); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Supplant - ,supplantInit: function () - { - var user = sessionStorage.getItem ('supplantUser'); + ,supplantInit: function() { + var user = sessionStorage.getItem('supplantUser'); if (user != null) - this.supplantUser (user); + this.supplantUser(user); } - ,supplantUser: function (user, callback) - { - this._conn.supplantUser (user, - this._onUserSupplant.bind (this, callback, user)); + ,supplantUser: function(user, callback) { + this._conn.supplantUser(user, + this._onUserSupplant.bind(this, callback, user)); } - ,_onUserSupplant: function (callback, user, supplantOk) - { + ,_onUserSupplant: function(callback, user, supplantOk) { if (!supplantOk) return; - sessionStorage.setItem ('supplantUser', user); - this.loadMenu (); + sessionStorage.setItem('supplantUser', user); + this.loadMenu(); var sql = 'SELECT nickname FROM account.myUser'; - this._conn.execQuery (sql, this._onSupplantName.bind (this)); + this._conn.execQuery(sql, this._onSupplantName.bind(this)); if (callback) - callback (); + callback(); } - ,_onSupplantName: function (resultSet) - { - var userName = resultSet.fetchValue (); - Vn.Node.setText (this.$('supplanted'), userName); - Vn.Node.show (this.$('supplant')); + ,_onSupplantName: function(resultSet) { + var userName = resultSet.fetchValue(); + Vn.Node.setText(this.$('supplanted'), userName); + Vn.Node.show(this.$('supplant')); } - ,onSupplantExitClick: function () - { - Vn.Node.hide (this.$('supplant')); - this._conn.supplantEnd (); - sessionStorage.removeItem ('supplantUser', - sessionStorage.getItem ('supplantUser')); - this.loadMenu (); - this._onFormChange (); + ,onSupplantExitClick: function() { + Vn.Node.hide(this.$('supplant')); + this._conn.supplantEnd(); + sessionStorage.removeItem('supplantUser', + sessionStorage.getItem('supplantUser')); + this.loadMenu(); + this._onFormChange(); } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ Destroy - ,_destroy: function () - { - this.hide (); - this.parent (); + ,_destroy: function() { + this.hide(); + this.parent(); } }); diff --git a/package.json b/package.json index 8a41c3de..8c0a88cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hedera-web", - "version": "1.406.63", + "version": "1.406.64", "description": "Verdnatura web page", "license": "GPL-3.0", "repository": {