From a71b196fefe599c6fb5435a44a77fcdd5a436643 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Sun, 30 Oct 2016 23:48:18 +0100 Subject: [PATCH] Backup --- app.js | 3 +- env.js | 8 ++++ forms/cms/home/style.css | 10 +++- forms/cms/training/style.css | 11 ++++- forms/ecomerce/catalog/style.css | 7 --- image/favicon.ico | Bin 1286 -> 0 bytes image/favicon/apple-touch-icon.png | Bin 0 -> 2981 bytes image/favicon/favicon.ico | Bin 0 -> 15086 bytes image/favicon/favicon.png | Bin 0 -> 31184 bytes image/icon.svg | 72 +++++++++++++++++++++++++++++ js/db/model.js | 8 ++-- js/hedera/gui.css | 24 ++-------- js/hedera/gui.js | 6 +-- js/hedera/hedera.js | 3 +- js/htk/popup.js | 18 +++++--- js/htk/style.css | 14 ++++++ js/htk/toast.js | 58 +++++++++++++++++------ js/vn/json-connection.js | 4 +- js/vn/vn.js | 2 +- manifest.json | 11 +++++ package.json | 18 ++++---- pages/main/head.php | 2 +- pages/main/ui.php | 11 +++-- web/html-service.php | 2 +- webpack.config.js | 20 ++++++-- 25 files changed, 231 insertions(+), 81 deletions(-) create mode 100644 env.js delete mode 100755 image/favicon.ico create mode 100644 image/favicon/apple-touch-icon.png create mode 100644 image/favicon/favicon.ico create mode 100644 image/favicon/favicon.png create mode 100644 image/icon.svg create mode 100644 manifest.json diff --git a/app.js b/app.js index cbd7e0e4..59f87a87 100644 --- a/app.js +++ b/app.js @@ -1,5 +1,6 @@ -var Hedera = require ('hedera/hedera'); +require ('./env.js' ); +require ('hedera/hedera'); window.onload = function () { diff --git a/env.js b/env.js new file mode 100644 index 00000000..babad2f8 --- /dev/null +++ b/env.js @@ -0,0 +1,8 @@ + +var host = window.location.host.split(':')[0]; + +if (_DEV_MODE) + host = host +':8080'; + +__webpack_public_path__ = '//'+ host +'/build/'; + diff --git a/forms/cms/home/style.css b/forms/cms/home/style.css index 4869b367..e5c58cd1 100644 --- a/forms/cms/home/style.css +++ b/forms/cms/home/style.css @@ -33,13 +33,14 @@ .new .top { padding: 1.5em; - padding-bottom: 1em; + padding-bottom: 0; } .new h2 { font-size: 1.6em; color: black; font-weight: normal; + padding: 0; } .new-info { @@ -50,7 +51,12 @@ } .new-text { - margin-top: 2em; + margin: 1.5em 0; +} +.new-text a +{ + color: blue; + text-decoration: underline; } .new-text li { diff --git a/forms/cms/training/style.css b/forms/cms/training/style.css index a73e03f0..6ee17b0d 100644 --- a/forms/cms/training/style.css +++ b/forms/cms/training/style.css @@ -22,13 +22,14 @@ .new .top { padding: 1.5em; - padding-bottom: 1em; + padding-bottom: 0; } .new h2 { font-size: 1.6em; color: black; font-weight: normal; + padding: 0; } .new-info { @@ -39,7 +40,12 @@ } .new-text { - margin-top: 2em; + margin: 1.5em 0; +} +.new-text a +{ + color: blue; + text-decoration: underline; } .new-text li { @@ -51,3 +57,4 @@ margin: auto; width: 100%; } + diff --git a/forms/ecomerce/catalog/style.css b/forms/ecomerce/catalog/style.css index dec55c0d..d9a93979 100644 --- a/forms/ecomerce/catalog/style.css +++ b/forms/ecomerce/catalog/style.css @@ -3,13 +3,6 @@ margin-right: 17em; } -/* Main */ - -.htk-toast -{ - margin-left: -10.5em; -} - /* Topbar */ .catalog-actions > .htk-search-entry diff --git a/image/favicon.ico b/image/favicon.ico deleted file mode 100755 index c26fb99655e7e772c141845cc90435f86c057fbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1286 zcma)5JBt%h6#m9d7F-Zq5Mj6R32L(|*jQ<)sD;g7`R+Mq0Ege%S@8EDHZ#C} z0LKX);V@y&Cw-zQ!cI`H*C$czDBslh9|r<44=qn%qd1Sc+=H5!HaXpHcZ5F-L*#O~ zbS+w3gIbHAiV=dfkbGaz6bs|`Yq#4dm&@rK$~y}sBDDMjTGGlb%K=@;;O(sp-nhGd z{M<_CsmVF!bov~IE1<5Rcontc47C5ZSK}-7EmDY6sZ>Vq^?1pl{&gZ6fVy<)E*k#6 zK6j$;veh?k@!?JeN?vEp3bgl}_(;ANP^GG9l2&t@jWKtp6vFHPC_ z?$}OomNV4w5Y3yWm+XuDL=EqF_8NiQO>H;$e;NArIo|6$af$nI%<$Ry^Ldrp2Q#sK zY55(_WDd&vHR#iD&*THkL;pq`V`n>TwLD4R(#Y(sUzNC1-m>ALw)d$Vnlskk0&$VO zO?29PYqkF!EpM7!&-!<8VPNWt zs*Ovtc6P>xs+*;j3)Fm{ctnmTto4#L$>CCOf&%TT!2uU};xl1<`4tzAL*xm!hgU#k HunGJFhB$uZ diff --git a/image/favicon/apple-touch-icon.png b/image/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..85e8a90bae98303b3cd77e3f8eae93636c9e86c0 GIT binary patch literal 2981 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 literal 0 HcmV?d00001 diff --git a/image/favicon/favicon.png b/image/favicon/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..ef30c8968114e68cf4ced23f0073dc3a8a5a517e GIT binary patch literal 31184 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 JUKzT_{SOgiv3&pl literal 0 HcmV?d00001 diff --git a/image/icon.svg b/image/icon.svg new file mode 100644 index 00000000..738c8157 --- /dev/null +++ b/image/icon.svg @@ -0,0 +1,72 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/js/db/model.js b/js/db/model.js index 600bcf7d..0181257a 100644 --- a/js/db/model.js +++ b/js/db/model.js @@ -849,14 +849,16 @@ Model.implement ,_onOperationsDone: function (ops, resultSet) { - if (resultSet.getError ()) + var error = resultSet.getError (); + + if (error) { this._operations = this._operations.concat (ops); for (var i = 0; i < ops.length; i++) this._operationsMap[ops[i].row.index] = ops[i]; - return; + throw error; } resultSet.fetchResult (); @@ -1163,7 +1165,7 @@ Model.implement case Connection.Type.DATE: { for (var i = 0; i < data.length; i++) - if (value === data[i][col].toString ()); + if (value === data[i][col].toString ()) return i; break; diff --git a/js/hedera/gui.css b/js/hedera/gui.css index 3ae789f7..7885b3ac 100644 --- a/js/hedera/gui.css +++ b/js/hedera/gui.css @@ -282,29 +282,20 @@ { position: relative; height: inherit; - opacity: 0; + 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); - - transition: all 250ms ease-out; - -webkit-transition: all 250ms ease-out; -} - -/* Desktop */ - -@media (min-width: 951px) -{ - .htk-toast - { - margin-left: -3em; - } } /* Mobile */ @@ -363,10 +354,5 @@ { max-height: 20em; } - - .htk-toast - { - margin-left: -10.5em; - } } diff --git a/js/hedera/gui.js b/js/hedera/gui.js index 66e9e845..a4285b17 100644 --- a/js/hedera/gui.js +++ b/js/hedera/gui.js @@ -1,5 +1,6 @@ var Module = require ('./module'); +var Css = require ('./gui.css'); var Tpl = require ('./gui.xml'); module.exports = new Class @@ -68,9 +69,8 @@ module.exports = new Class return; this._shown = true; - - Vn.includeCss ('js/hedera/gui.css'); this.doc.body.appendChild (this.node); + Htk.Toast.pushTop (this.$('form-holder')); if (Vn.isMobile ()) { @@ -99,11 +99,11 @@ module.exports = new Class if (Vn.isMobile ()) window.removeEventListener ('scroll', this._onScrollHandler); + Htk.Toast.popTop (); this.formParam.unref (); this.closeForm (); this.hideMenu (); Vn.Node.remove (this.node); - Vn.excludeCss ('js/hedera/gui.css'); } ,logout: function () diff --git a/js/hedera/hedera.js b/js/hedera/hedera.js index 0a88c251..051c3cb2 100644 --- a/js/hedera/hedera.js +++ b/js/hedera/hedera.js @@ -1,7 +1,6 @@ require ('htk/htk'); - -Vn.includeCss ('js/hedera/style.css'); +require ('./style.css'); Hedera = module.exports = { Login : require ('./login') diff --git a/js/htk/popup.js b/js/htk/popup.js index 55852615..66393a93 100644 --- a/js/htk/popup.js +++ b/js/htk/popup.js @@ -108,6 +108,7 @@ module.exports = new Class var bg = this._bg = this.createElement ('div'); bg.className = 'htk-background'; bg.addEventListener ('mousedown', this._bgMouseDownHandler); + Htk.Toast.pushTop (bg); Vn.Node.addClass (this.node, 'modal'); bg.appendChild (this.node); @@ -141,15 +142,17 @@ module.exports = new Class { if (!this._isOpen) return; + + var node = this._node; - var style = this.node.style; + var style = node.style; style.height = ''; style.width = ''; var margin = 20; var dblMargin = margin * 2; - var width = this.node.offsetWidth; - var height = this.node.offsetHeight; + var width = node.offsetWidth; + var height = node.offsetHeight; var innerWidth = Vn.Browser.getInnerWidth (); var innerHeight = Vn.Browser.getInnerHeight (); @@ -169,8 +172,8 @@ module.exports = new Class style.top = '50%'; style.left = '50%'; - style.marginLeft = (-this.node.offsetWidth / 2) +'px'; - style.marginTop = (-this.node.offsetHeight / 2) +'px'; + style.marginLeft = (-node.offsetWidth / 2) +'px'; + style.marginTop = (-node.offsetHeight / 2) +'px'; } else { @@ -201,14 +204,15 @@ module.exports = new Class if (this._bg) { + Htk.Toast.popTop (); Vn.Node.remove (this._bg); - Vn.Node.removeClass (this.node, 'modal'); + Vn.Node.removeClass (this._node, 'modal'); this._bg = null; } else this.doc.removeEventListener ('mousedown', this._bgMouseDownHandler); - Vn.Node.remove (this.node); + Vn.Node.remove (this._node); this._parent = null; this._isOpen = false; this.signalEmit ('closed'); diff --git a/js/htk/style.css b/js/htk/style.css index 99aa58b9..c0d54000 100644 --- a/js/htk/style.css +++ b/js/htk/style.css @@ -395,6 +395,20 @@ td.cell-image .htk-image border-radius: 0.1em; box-shadow: 0 0 0.4em rgba(1, 1, 1, 0.6); width: 96%; + + opacity: 0; + transform: translateZ(0) translateY(-1em); + -webkit-transform: translateZ(0) translateY(-1em); + + transition-property: opacity, transform; + transition-duration: 200ms; + transition-timing-function: ease-out; +} +.htk-toast > div.show +{ + opacity: 1; + transform: translateZ(0) translateY(0em); + -webkit-transform: translateZ(0) translateY(0em); } .htk-toast > .message { diff --git a/js/htk/toast.js b/js/htk/toast.js index 785ff267..5585cdf0 100644 --- a/js/htk/toast.js +++ b/js/htk/toast.js @@ -7,6 +7,7 @@ module.exports = ,timeout: 10 /* Seconds */ ,_container: null ,_timeouts: null + ,_topHeap: [] /** * Shows a normal toast message. @@ -38,6 +39,16 @@ module.exports = this._showText (message, 'error'); } + ,pushTop: function (top) + { + this._topHeap.push (top); + } + + ,popTop: function () + { + return this._topHeap.pop (); + } + /** * Hides all currently displayed toast messages. **/ @@ -60,18 +71,28 @@ module.exports = ,_createContainer: function () { - if (this._container) - return; - - var container = document.createElement ('div'); - container.className = 'htk-toast'; - document.body.appendChild (container); + if (!this._container) + { + var container = document.createElement ('div'); + container.className = 'htk-toast'; + document.body.appendChild (container); - this.hideHandler = this.hide.bind (this); - document.addEventListener ('mousedown', this.hideHandler); + this.hideHandler = this.hide.bind (this); + document.addEventListener ('mousedown', this.hideHandler); - this._timeouts = []; - this._container = container; + this._timeouts = []; + this._container = container; + } + + var heapLen = this._topHeap.length; + + if (heapLen > 0) + { + var top = this._topHeap[heapLen - 1]; + var rect = top.getBoundingClientRect (); + var left = rect.left + parseInt (rect.width / 2) - window.pageXOffset; + this._container.style.left = left +'px'; + } } ,_showText: function (message, className) @@ -81,17 +102,24 @@ module.exports = if (this._timeouts.length >= this.maxMessages) this._onMessageTimeout (); - var node = document.createElement ('div'); - node.className = className; - node.addEventListener ('mousedown', this._onMessageMouseDown); + var toast = document.createElement ('div'); + toast.className = className; + toast.addEventListener ('mousedown', this._onMessageMouseDown); var textNode = document.createTextNode (message); - node.appendChild (textNode); + toast.appendChild (textNode); - this._container.appendChild (node); + this._container.appendChild (toast); var timeoutId = setTimeout (this._onMessageTimeout.bind (this), this.timeout * 1000); this._timeouts.push (timeoutId); + + setTimeout (this._onShowToastTimeout.bind (this, toast), 50); + } + + ,_onShowToastTimeout: function (toast) + { + Vn.Node.addClass (toast, 'show'); } ,_onMessageTimeout: function () diff --git a/js/vn/json-connection.js b/js/vn/json-connection.js index 74e94c3d..7d38b9d6 100644 --- a/js/vn/json-connection.js +++ b/js/vn/json-connection.js @@ -108,7 +108,7 @@ module.exports = new Class this.signalEmit ('closed'); if (callback) - callback (this, json == true, error); + callback (this, json === true, error); } ,_closeClient: function () @@ -261,7 +261,7 @@ module.exports = new Class var json = JSON.parse (request.responseText); var jsData = json.data; - var jsWarns = json.warnings; + //var jsWarns = json.warnings; if (request.status == 200) { diff --git a/js/vn/vn.js b/js/vn/vn.js index 89320e75..6a0ebe5a 100644 --- a/js/vn/vn.js +++ b/js/vn/vn.js @@ -1,5 +1,5 @@ -var Mootools = require ('mootools'); +require ('mootools'); Vn = module.exports = { Locale : require ('./locale') diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..e1b6b274 --- /dev/null +++ b/manifest.json @@ -0,0 +1,11 @@ +{ + "name": "Verdnatura", + "icons": [ + { + "src": "image\/favicon\/favicon.png", + "sizes": "512x512" + } + ], + "start_url": "index.php", + "display": "standalone" +} diff --git a/package.json b/package.json index 177562ec..051cdc02 100644 --- a/package.json +++ b/package.json @@ -3,20 +3,22 @@ "version": "1.0.0", "description": "Verdnatura web page", "devDependencies": { - "webpack": "*", - "webpack-dev-server": "*", - "css-loader": "*", - "style-loader": "*", - "json-loader": "*", - "raw-loader": "*", - "bundle-loader": "*" + "bundle-loader": "^0.5.4", + "css-loader": "^0.25.0", + "file-loader": "^0.9.0", + "json-loader": "^0.5.4", + "raw-loader": "^0.5.1", + "style-loader": "^0.13.1", + "url-loader": "^0.5.7", + "webpack": "^1.13.3", + "webpack-dev-server": "^1.16.2" }, "dependencies": { "mootools": "^1.5.2", "tinymce": "^4.4.3" }, "scripts": { - "dev": "webpack-dev-server --progress --colors --inline --hot", + "dev": "webpack-dev-server --progress --colors --hot", "build": "rm -f build/* ; webpack --progress --colors", "clean": "rm -rf build/" } diff --git a/pages/main/head.php b/pages/main/head.php index beadc2b1..c135129c 100755 --- a/pages/main/head.php +++ b/pages/main/head.php @@ -12,7 +12,7 @@ if ($result = $db->query ('SELECT name, content FROM metatag')) $result->free (); } -$url = _DEV_MODE ? 'http://localhost:8080' : '.'; +$url = _DEV_MODE ? "http://{$_SERVER['SERVER_NAME']}:8080" : '.'; if (_DEV_MODE) $this->includeJs ("$url/webpack-dev-server.js"); diff --git a/pages/main/ui.php b/pages/main/ui.php index 55520cfb..65006b62 100755 --- a/pages/main/ui.php +++ b/pages/main/ui.php @@ -4,9 +4,14 @@ - - - + + + + + + + + Verdnatura diff --git a/web/html-service.php b/web/html-service.php index 0b196b96..a85820e8 100644 --- a/web/html-service.php +++ b/web/html-service.php @@ -91,7 +91,7 @@ class HtmlService extends Service function printHeader () { header ('Content-Type: text/html; charset=UTF-8'); - //header ("Content-Security-Policy: default-src 'self'; img-src *"); + //header ("Content-Security-Policy: default-src *; img-src *;"); } function globalErrorHandler () diff --git a/webpack.config.js b/webpack.config.js index 98678f2c..040997d0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -11,13 +11,14 @@ module.exports = path: path.join (__dirname, 'build'), filename: 'hedera-web.js', chunkFilename: 'chunk.[id].[chunkhash].js', - publicPath: devMode ? 'http://localhost:8080/build/' : 'build/', + publicPath: 'build/' }, module: { loaders: [ { test: /\.css$/, loader: 'style!css' }, { test: /\.json$/, loader: 'json' }, - { test: /\.xml$/, loader: 'raw' } + { test: /\.xml$/, loader: 'raw' }, + { test: /\.ttf$/, loader: 'file' } ] }, resolve: { @@ -28,8 +29,19 @@ module.exports = fallback: process.env.NODE_PATH }, plugins: [ -// new webpack.optimize.UglifyJsPlugin ({minimize: true}) + new webpack.DefinePlugin ({ _DEV_MODE: devMode }), + new webpack.optimize.UglifyJsPlugin ({ + minimize: true, + compress: { + warnings: false + } + }) ], -// devtool: 'source-map' + devServer: { + inline: true, + host: '0.0.0.0', + headers: { "Access-Control-Allow-Origin": "*" } + }, + devtool: 'source-map' };