diff --git a/image/family/black/accessory.svg b/image/family/black/accessory.svg
new file mode 100644
index 00000000..f49d134a
--- /dev/null
+++ b/image/family/black/accessory.svg
@@ -0,0 +1,49 @@
+
+
+
+
diff --git a/image/family/black/artificial.svg b/image/family/black/artificial.svg
new file mode 100644
index 00000000..83000adc
--- /dev/null
+++ b/image/family/black/artificial.svg
@@ -0,0 +1,59 @@
+
+
+
+
diff --git a/image/family/black/flower.svg b/image/family/black/flower.svg
new file mode 100644
index 00000000..cd941b4d
--- /dev/null
+++ b/image/family/black/flower.svg
@@ -0,0 +1,76 @@
+
+
+
+
diff --git a/image/family/black/fruit.svg b/image/family/black/fruit.svg
new file mode 100644
index 00000000..0c1ad7e0
--- /dev/null
+++ b/image/family/black/fruit.svg
@@ -0,0 +1,49 @@
+
+
+
+
diff --git a/image/family/black/greenery.svg b/image/family/black/greenery.svg
new file mode 100644
index 00000000..e99f102a
--- /dev/null
+++ b/image/family/black/greenery.svg
@@ -0,0 +1,49 @@
+
+
+
+
diff --git a/image/family/black/handmade.svg b/image/family/black/handmade.svg
new file mode 100644
index 00000000..1ff9644d
--- /dev/null
+++ b/image/family/black/handmade.svg
@@ -0,0 +1,59 @@
+
+
+
+
diff --git a/image/family/black/handmadeArtificial.svg b/image/family/black/handmadeArtificial.svg
new file mode 100644
index 00000000..f4ea2768
--- /dev/null
+++ b/image/family/black/handmadeArtificial.svg
@@ -0,0 +1,59 @@
+
+
+
+
diff --git a/image/family/black/mortuary.svg b/image/family/black/mortuary.svg
new file mode 100644
index 00000000..979e5118
--- /dev/null
+++ b/image/family/black/mortuary.svg
@@ -0,0 +1,49 @@
+
+
+
+
diff --git a/image/family/black/pets.svg b/image/family/black/pets.svg
new file mode 100644
index 00000000..437f7648
--- /dev/null
+++ b/image/family/black/pets.svg
@@ -0,0 +1,79 @@
+
+
diff --git a/image/family/black/plant.svg b/image/family/black/plant.svg
new file mode 100644
index 00000000..67e2240a
--- /dev/null
+++ b/image/family/black/plant.svg
@@ -0,0 +1,49 @@
+
+
+
+
diff --git a/image/family/black/preserved.svg b/image/family/black/preserved.svg
new file mode 100644
index 00000000..b88d5399
--- /dev/null
+++ b/image/family/black/preserved.svg
@@ -0,0 +1,49 @@
+
+
+
+
diff --git a/image/family/black/treatments.svg b/image/family/black/treatments.svg
new file mode 100644
index 00000000..69dcbf82
--- /dev/null
+++ b/image/family/black/treatments.svg
@@ -0,0 +1,59 @@
+
+
+
+
diff --git a/index.js b/index.js
new file mode 100644
index 00000000..aa8a23f4
--- /dev/null
+++ b/index.js
@@ -0,0 +1,60 @@
+__webpack_public_path__ = _PUBLIC_PATH;
+
+require('hedera/hedera');
+
+window.onload = function() {
+ loadLocale(main);
+}
+
+function main(req) {
+ if (req)
+ onLocaleLoad(req);
+
+ hederaWeb = new Hedera.App();
+ hederaWeb.run();
+}
+
+function loadLocale(cb) {
+ Vn.Locale.init();
+ var lang = Vn.Locale.language;
+
+ var req = require.context('js', true, /locale\/en.yml$/);
+ onLocaleLoad(req);
+
+ switch (lang) {
+ case 'ca':
+ require([], function() {
+ cb(require.context('js', true, /locale\/ca.yml$/));
+ });
+ break;
+ case 'es':
+ require([], function() {
+ cb(require.context('js', true, /locale\/es.yml$/));
+ });
+ break;
+ case 'fr':
+ require([], function() {
+ cb(require.context('js', true, /locale\/fr.yml$/));
+ });
+ break;
+ case 'mn':
+ require([], function() {
+ cb(require.context('js', true, /locale\/mn.yml$/));
+ });
+ break;
+ case 'pt':
+ require([], function() {
+ cb(require.context('js', true, /locale\/pt.yml$/));
+ });
+ break;
+ default:
+ cb();
+ }
+}
+
+function onLocaleLoad(req) {
+ var keys = req.keys();
+
+ for (var i = 0; i < keys.length; i++)
+ Vn.Locale.add(req(keys[i]));
+}
diff --git a/js/hedera/gui.css b/js/hedera/gui.css
deleted file mode 100644
index 791f5e2e..00000000
--- a/js/hedera/gui.css
+++ /dev/null
@@ -1,350 +0,0 @@
-
-.vn-gui {
- height: inherit;
-}
-
-/* Font */
-
-.vn-gui .user-name,
-.vn-gui .menu-title,
-.vn-gui .main-menu {
- font-size: 1.1em;
-}
-
-/* Navigation bar */
-
-.vn-gui .navbar {
- position: fixed;
- background-color: #1A1A1A;
- left: 250px;
- top: 0;
- right: 0;
- z-index: 1;
- overflow: hidden;
- height: 64px;
- color: white;
-
- transition-property: left, background-color, transform;
- transition-duration: 200ms;
- transition-timing-function: ease-in-out;
-}
-.vn-gui .menu-button {
- position: absolute;
- left: 0;
- display: none;
- border: none;
- background-color: transparent;
- padding: 0 .4em;
- margin: 0;
- height: 100%;
-}
-.vn-gui .menu-button:hover {
- background-color: rgba(0, 0, 0, .2);
-}
-.vn-gui .menu-button img {
- vertical-align: middle;
- height: 1.8em;
-}
-.vn-gui .title {
- float: left;
-}
-.vn-gui .title h1 {
- font-weight: normal;
- font-size: 1.4em;
- padding: .8em .6em;
- padding-right: .3em;
- margin: 0;
-}
-.vn-gui .navbar > .htk-spinner {
- float: left;
- margin: 1.05em .8em;
-}
-
-/* Action bar */
-
-.vn-gui .action-bar {
- float: right;
- padding: 0;
- margin: 0;
- height: 100%;
-}
-.vn-gui .action-bar > div {
- padding: 0;
- margin: 0;
- height: 100%;
-}
-.vn-gui .action-bar > div > * {
- float: right;
-}
-.vn-gui .action-bar button {
- margin: 0;
- padding: 1.25em .5em;
- border-radius: 2em;
- font-weight: bold;
-}
-.vn-gui .action-bar button:hover {
- background-color: rgba(1, 1, 1, .2);
-}
-.vn-gui .action-bar button > img {
- vertical-align: middle;
- height: 1.4em;
-}
-
-/* Background */
-
-.vn-gui > .background {
- z-index: 10;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- visibility: hidden;
- background-color: rgba(1, 1, 1, .7);
- opacity: 0;
-}
-.vn-gui > .background.show {
- visibility: visible;
- transition: opacity 200ms ease-out;
- opacity: 1;
-}
-
-/* Left panel */
-
-.vn-gui .left-panel {
- z-index: 20;
- position: fixed;
- left: 0;
- bottom: 0;
- top: 0;
- background-color: white;
- z-index: 20;
- width: 250px;
-}
-.vn-gui .menu-overflow {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 4em;
- overflow: auto;
-}
-.vn-gui .menu-header {
- background-color: #1A1A1A;
- color: white;
- height: 64px;
- display: flex;
-}
-.vn-gui .logo {
- display: block;
- width: 160px;
- margin-left: 37px;
-}
-.vn-gui .user-info {
- overflow: hidden;
- padding: 20px 37px;
- font-weight: bold;
-}
-.vn-gui .user-info > img {
- margin-right: 10px;
- height: 20px;
- vertical-align: middle;
-}
-.vn-gui .user-info > p {
- margin: 0;
- margin-top: .2em;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-.vn-gui .logout {
- display: block;
- width: 100%;
- margin: 0;
- text-align: left;
- padding: 14px 37px;
-}
-.vn-gui .supplant {
- display: none;
- padding: 8px;
- margin: 0;
- margin-top: .2em;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-.vn-gui .supplant > p {
- margin: 0;
- margin-top: .2em;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-.vn-gui .supplant-logout {
- float: right;
- margin: 0;
- padding: .2em;
- display: block;
-}
-.vn-gui .supplant-logout > img {
- height: 1.2em;
- display: block;
-}
-
-/* Test link */
-
-.vn-gui .test-link {
- display: none;
- margin: .5em;
- background-color: #3f51b5;
- color: white;
- padding: 0 1em;
- line-height: 2em;
- border-radius: .1em;
- text-align: center;
-}
-.vn-gui .test-link:hover {
- background-color: #4f61c5;
-}
-.vn-gui .dev-info {
- display: none;
- padding: .3em .5em;
- color: white;
- background-color: #3f51b5;
- font-size: .9em;
- margin: .5em;
- border-radius: .1em;
-}
-.vn-gui .dev-info > p {
- margin: .2em 0;
-}
-.vn-gui .dev-info > .mode {
- color: #BBF;
-}
-
-/* Menu */
-
-.vn-gui .main-menu,
-.vn-gui ul.submenu {
- list-style-type: none;
- padding: 0;
- margin: 0;
-}
-.vn-gui .main-menu > li {
- display: block;
- padding: 0;
- margin: 0;
- width: 100%;
-}
-.vn-gui .main-menu a {
- width: 70%;
- padding: 0 15%;
- display: block;
- line-height: 2.8em;
-}
-.vn-gui .main-menu a:hover,
-.vn-gui .main-menu a.selected {
- background-color: rgba(1, 1, 1, .1);
-}
-.vn-gui ul.submenu {
- display: none;
-}
-.vn-gui ul.submenu.popup {
- display: inline;
- position: fixed;
- border: none;
- border-radius: 1px;
- background-color: white;
- box-shadow: 0 0 .3em rgba(1, 1, 1, .3);
- z-index: 50;
- width: 13em;
- max-height: 30em;
-}
-
-/* Social */
-
-.vn-gui .menu-footer {
- position: absolute;
- bottom: 0;
- right: 0;
- left: 0;
-}
-
-/* Body */
-
-.vn-gui > .body {
- margin-left: 250px;
- padding-top: 4.4em;
- height: inherit;
- box-sizing: border-box;
- height: inherit;
-
- transition-property: margin-left, margin-right;
- transition-duration: 200ms;
-}
-.vn-gui .form-holder {
- position: relative;
- height: inherit;
-
- opacity: 0;
- transform: translateZ(0) translateX(-2em);
- -webkit-transform: translateZ(0) translateX(-2em);
-
- transition-property: opacity, transform;
- transition-duration: 200ms;
- transition-timing-function: ease-out;
-}
-.vn-gui .form-holder.show {
- opacity: 1;
- transform: translateZ(0) translateX(0em);
- -webkit-transform: translateZ(0) translateX(0em);
-}
-
-/* Mobile */
-
-@media (max-width: 960px) {
- .vn-gui .action-bar span.label,
- .vn-gui .htk-button > span {
- display: none;
- }
- .vn-gui > .navbar {
- padding-left: 2.8em;
- left: 0;
- }
- .vn-gui > .body {
- margin-left: 0;
- }
- .vn-gui .menu-button {
- display: block;
- }
- .vn-gui .left-panel {
- top: 0;
- left: -250px;
- box-shadow: 0 0 .2em rgba(1, 1, 1, .3);
-
- transition: transform 200ms ease-out;
- -webkit-transition: transform 200ms ease-out;
- }
- .vn-gui .left-panel.show {
- transform: translateZ(0) translateX(250px);
- -webkit-transform: translateZ(0) translateX(250px);
- }
- .vn-gui .form-holder {
- left: 0;
- }
- .vn-gui ul.submenu {
- display: block;
- background-color: #888;
- color: white;
- box-shadow: inset 0 0 .2em rgba(1, 1, 1, .2);
- overflow: hidden;
-
- max-height: 0;
- transition: max-height 300ms ease-out;
- webkit-transition: max-height 300ms ease-out;
- }
- .vn-gui .main-menu li:hover > ul.submenu {
- max-height: 20em;
- }
-}
-
diff --git a/js/hedera/gui.js b/js/hedera/gui.js
index 4b8b1568..03000355 100644
--- a/js/hedera/gui.js
+++ b/js/hedera/gui.js
@@ -1,8 +1,8 @@
var Module = require('./module');
-var Tpl = require('./gui.xml');
+var Tpl = require('./gui.xml').default;
-require('./gui.css');
+require('./gui.scss');
module.exports = new Class({
Extends: Htk.Component,
@@ -49,7 +49,7 @@ module.exports = new Class({
var sql = 'SELECT id, name, nickname FROM account.myUser;'
+'SELECT defaultForm FROM config;'
+'SELECT url FROM imageConfig;'
- +'SELECT dbproduccion FROM vn2008.tblContadores;'
+ +'SELECT dbproduccion FROM vn.config;'
+'SELECT productionDomain, testDomain FROM config;';
this._conn.execQuery(sql, this.onMainQueryDone.bind(this));
diff --git a/js/hedera/gui.scss b/js/hedera/gui.scss
new file mode 100644
index 00000000..1240081a
--- /dev/null
+++ b/js/hedera/gui.scss
@@ -0,0 +1,324 @@
+.vn-gui {
+ height: inherit;
+
+ /* Font */
+
+ .user-name,
+ .menu-title {
+ font-size: 1.1em;
+ }
+
+ /* Navigation bar */
+
+ .navbar {
+ position: fixed;
+ background-color: #1A1A1A;
+ left: 250px;
+ top: 0;
+ right: 0;
+ z-index: 1;
+ overflow: hidden;
+ height: 64px;
+ color: white;
+
+ transition-property: left, background-color, transform;
+ transition-duration: 200ms;
+ transition-timing-function: ease-in-out;
+ }
+ .menu-button {
+ position: absolute;
+ left: 0;
+ display: none;
+ border: none;
+ background-color: transparent;
+ padding: 0 1em;
+ margin: 0;
+ height: 100%;
+ }
+ .menu-button:hover {
+ background-color: rgba(0, 0, 0, .2);
+ }
+ .menu-button img {
+ vertical-align: middle;
+ height: 1.8em;
+ }
+ .title {
+ float: left;
+ }
+ .title h1 {
+ font-weight: normal;
+ font-size: 1.4em;
+ padding: .8em .6em;
+ padding-right: .3em;
+ margin: 0;
+ }
+ .navbar > .htk-spinner {
+ float: left;
+ margin: 1.05em .8em;
+ }
+
+ /* Action bar */
+
+ .action-bar {
+ float: right;
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ }
+ .action-bar > div {
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ padding: 0 1em;
+ gap: .5em;
+ }
+ .action-bar > div > * {
+ float: right;
+ }
+ .action-bar button {
+ margin: 0;
+ padding: .6em;
+ }
+ .action-bar button:hover {
+ background-color: rgba(2550, 255, 255, .2);
+ }
+
+ /* Background */
+
+ & > .background {
+ z-index: 10;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ visibility: hidden;
+ background-color: rgba(1, 1, 1, .7);
+ opacity: 0;
+ }
+ & > .background.show {
+ visibility: visible;
+ transition: opacity 200ms ease-out;
+ opacity: 1;
+ }
+
+ /* Left panel */
+
+ .left-panel {
+ z-index: 20;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ top: 0;
+ background-color: white;
+ z-index: 20;
+ width: 250px;
+ }
+ .menu-overflow {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 4em;
+ overflow: auto;
+ }
+ .menu-header {
+ background-color: #1A1A1A;
+ color: white;
+ height: 64px;
+ display: flex;
+ }
+ .logo {
+ display: block;
+ width: 160px;
+ margin-left: 37px;
+ }
+ .user-info > div {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ overflow: hidden;
+ font-weight: bold;
+ border: 1px solid #eaeaea;
+ margin: 25px;
+
+ & > span {
+ padding: 10px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .logout {
+ display: block;
+ margin: 0;
+ text-align: left;
+
+ &:hover {
+ background-color: #1a1a1a;
+ color: white;
+ }
+ }
+ &.supplant {
+ display: none;
+ }
+ }
+
+ /* Test link */
+
+ .test-link {
+ display: none;
+ margin: .5em;
+ background-color: #3f51b5;
+ color: white;
+ padding: 0 1em;
+ line-height: 2em;
+ border-radius: .1em;
+ text-align: center;
+ }
+ .test-link:hover {
+ background-color: #4f61c5;
+ }
+ .dev-info {
+ display: none;
+ padding: .3em .5em;
+ color: white;
+ background-color: #3f51b5;
+ font-size: .9em;
+ margin: .5em;
+ border-radius: .1em;
+ }
+ .dev-info > p {
+ margin: .2em 0;
+ }
+ .dev-info > .mode {
+ color: #BBF;
+ }
+
+ /* Menu */
+
+ .main-menu,
+ ul.submenu {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+ }
+ .main-menu > li {
+ display: block;
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ }
+ .main-menu a {
+ width: 70%;
+ padding: 0 15%;
+ display: block;
+ line-height: 2.8em;
+ }
+ .main-menu a:hover,
+ .main-menu a.selected {
+ background-color: rgba(1, 1, 1, .1);
+ }
+ ul.submenu {
+ display: none;
+ }
+ ul.submenu.popup {
+ display: inline;
+ position: fixed;
+ border: none;
+ border-radius: 1px;
+ background-color: white;
+ box-shadow: 0 0 .3em rgba(1, 1, 1, .3);
+ z-index: 50;
+ width: 13em;
+ max-height: 30em;
+ }
+
+ /* Social */
+
+ .menu-footer {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ left: 0;
+ }
+
+ /* Body */
+
+ & > .body {
+ margin-left: 250px;
+ padding-top: 4.4em;
+ height: inherit;
+ box-sizing: border-box;
+ height: inherit;
+
+ transition-property: margin-left, margin-right;
+ transition-duration: 200ms;
+ }
+ .form-holder {
+ position: relative;
+ height: inherit;
+
+ opacity: 0;
+ transform: translateZ(0) translateX(-2em);
+ -webkit-transform: translateZ(0) translateX(-2em);
+
+ transition-property: opacity, transform;
+ transition-duration: 200ms;
+ transition-timing-function: ease-out;
+ }
+ .form-holder.show {
+ opacity: 1;
+ transform: translateZ(0) translateX(0em);
+ -webkit-transform: translateZ(0) translateX(0em);
+ }
+
+ /* Mobile */
+
+ @media (max-width: 960px) {
+ .action-bar span.label,
+ .htk-button > .text {
+ display: none;
+ }
+ & > .navbar {
+ padding-left: 2.8em;
+ left: 0;
+ }
+ & > .body {
+ margin-left: 0;
+ }
+ .menu-button {
+ display: block;
+ }
+ .left-panel {
+ top: 0;
+ left: -250px;
+ box-shadow: 0 0 .2em rgba(1, 1, 1, .3);
+
+ transition: transform 200ms ease-out;
+ -webkit-transition: transform 200ms ease-out;
+ }
+ .left-panel.show {
+ transform: translateZ(0) translateX(250px);
+ -webkit-transform: translateZ(0) translateX(250px);
+ }
+ .form-holder {
+ left: 0;
+ }
+ ul.submenu {
+ display: block;
+ background-color: #888;
+ color: white;
+ box-shadow: inset 0 0 .2em rgba(1, 1, 1, .2);
+ overflow: hidden;
+
+ max-height: 0;
+ transition: max-height 300ms ease-out;
+ webkit-transition: max-height 300ms ease-out;
+ }
+ .main-menu li:hover > ul.submenu {
+ max-height: 20em;
+ }
+ }
+}
diff --git a/js/hedera/gui.xml b/js/hedera/gui.xml
index ec5c53fc..9b7a922d 100644
--- a/js/hedera/gui.xml
+++ b/js/hedera/gui.xml
@@ -3,7 +3,7 @@
@@ -14,21 +14,22 @@
-
-
Hello,
+
+
+
+
+
+
+
+
-