diff --git a/.gitignore b/.gitignore index 70cc49f2..8eff0fa1 100644 --- a/.gitignore +++ b/.gitignore @@ -49,4 +49,4 @@ Temporary Items .idea .sass-cache .usage -.gz +*.gz diff --git a/app/main/controller/setup.php b/app/main/controller/setup.php index 23b79601..a712562b 100644 --- a/app/main/controller/setup.php +++ b/app/main/controller/setup.php @@ -145,6 +145,7 @@ class Setup extends Controller { * @param $tableIndex * @return array */ + /* protected function importTableData($tableIndex){ $importStatus = []; @@ -167,6 +168,7 @@ class Setup extends Controller { return $importStatus; } + */ /** * export/download table data as *.csv @@ -174,6 +176,7 @@ class Setup extends Controller { * @param $tableIndex * @return array */ + /* protected function exportTableData($tableIndex){ $exportStatus = []; @@ -196,6 +199,7 @@ class Setup extends Controller { return $exportStatus; } + */ /** * get server information @@ -243,30 +247,19 @@ class Setup extends Controller { // server type ------------------------------------------------------------------ - $serverType = '???'; - $serverVersion = '???'; - $requiredServerVersion = '???'; - if(strpos('nginx', $_SERVER['SERVER_SOFTWARE']) !== 1){ - $serverType = reset(explode('/', $_SERVER['SERVER_SOFTWARE'])); - $serverVersion = end(explode('/', $_SERVER['SERVER_SOFTWARE'])); - - $requiredServerVersion = $f3->get('REQUIREMENTS.SERVER.NGINX.VERSION'); - }else{ - print_r('TODO Apache'); - } - + $serverData = self::getServerData(); $checkRequirements = [ 'servertype' => [ 'label' => 'Server type', - 'version' => $serverType, + 'version' => $serverData->type, 'check' => true ], 'serverversion' => [ 'label' => 'Server version', - 'required' => $requiredServerVersion, - 'version' => $serverVersion, - 'check' => version_compare( $serverVersion, $requiredServerVersion, '>=') + 'required' => $serverData->requiredVersion, + 'version' => $serverData->version, + 'check' => version_compare( $serverData->version, $serverData->requiredVersion, '>=') ], 'php' => [ 'label' => 'PHP', @@ -296,7 +289,7 @@ class Setup extends Controller { ] ]; - if($serverType != 'nginx'){ + if($serverData->type != 'nginx'){ // mod_rewrite check ------------------------------------------------------------ $modRewriteCheck = false; $modRewriteVersion = 'disabled'; diff --git a/gulpfile.js b/gulpfile.js index 5ed69e12..662fa753 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -3,8 +3,10 @@ var gulp = require('gulp-param')(require('gulp'), process.argv); var jshint = require('gulp-jshint'); var notify = require('gulp-notify'); var plumber = require('gulp-plumber'); +var gzip = require('gulp-gzip'); var gulpif = require('gulp-if'); var clean = require('gulp-clean'); +var critical = require('critical'); var runSequence = require('run-sequence'); var exec = require('child_process').exec; @@ -21,12 +23,16 @@ var _src = { JS_LIBS: './js/lib/**/*', JS_BUILD: './build_js', JS_DIST: './public/js', + CSS_SRC: './public/css/*.css', + CSS_DIST: './public/css', PACKAGE: './package.json', CACHE: './tmp/**/*.*' }; // Gulp plumber error handler var onError = function(err) { + 'use strict'; + console.log(err); }; @@ -45,6 +51,7 @@ var tagVersion = null; * RequireJS build task using the r.js optimizer. */ gulp.task('requirejs', ['jshint'], function() { + 'use strict'; var rjsPath = path.resolve(__dirname, './node_modules/requirejs/bin/r.js'); var oPath = path.resolve(__dirname, './build.js'); @@ -59,8 +66,9 @@ gulp.task('requirejs', ['jshint'], function() { } runSequence( - 'copyBuildFiles', - 'removeBuildFiles' + 'copyJSBuildFiles', + 'removeBuildFiles', + 'gzipJS' ); }); }); @@ -73,6 +81,7 @@ gulp.task('requirejs', ['jshint'], function() { * http://jshint.com/docs/options/ */ gulp.task('jshint', function(){ + 'use strict'; return gulp.src([ _src.JS_SRC, @@ -96,7 +105,8 @@ gulp.task('jshint', function(){ * Copy optimized/uglyfied js files from "js_build" folder to "public/js/x.x.x/*" folder * for release deployment (cache busting) */ -gulp.task('copyBuildFiles', ['removeDistFiles'], function () { +gulp.task('copyJSBuildFiles', ['removeDistFiles'], function () { + 'use strict'; // raw files var source = _src.JS_SRC; @@ -114,11 +124,11 @@ gulp.task('copyBuildFiles', ['removeDistFiles'], function () { gulp.dest( _src.JS_DIST + '/' + tagVersion ) ) ).pipe(notify({ - icon: path.resolve(__dirname, _src.ICON), - title: 'Copy JS to dist', - message: 'Task complete', - onLast: true - })); + icon: path.resolve(__dirname, _src.ICON), + title: 'Copy JS to dist', + message: 'Task complete', + onLast: true + })); }); /** @@ -126,7 +136,6 @@ gulp.task('copyBuildFiles', ['removeDistFiles'], function () { */ gulp.task('removeBuildFiles', function () { 'use strict'; - return gulp.src( _src.JS_BUILD ).pipe( clean( _src.JS_BUILD ) ); }); @@ -135,16 +144,42 @@ gulp.task('removeBuildFiles', function () { */ gulp.task('removeDistFiles', function () { 'use strict'; - var dist = _src.JS_DIST + '/' + tagVersion; return gulp.src(dist).pipe( clean(dist) ); }); +/** + * create *.gz version from minimized *.css + */ +gulp.task('gzipCSS', function() { + 'use strict'; + + return gulp.src(_src.CSS_SRC) + .pipe(gzip({ + gzipOptions: { level: 8 } + })) + .pipe(gulp.dest(_src.CSS_DIST)); +}); + +/** + * create *.gz version from minimized *.js + */ +gulp.task('gzipJS', function() { + 'use strict'; + + return gulp.src(_src.JS_DIST + '/' + tagVersion + '/**/*.js') + .pipe(gzip({ + gzipOptions: { level: 8 } + })) + .pipe(gulp.dest(_src.JS_DIST + '/' + tagVersion)); +}); + /*******************************************/ // Watch // execute only during continuous development! -gulp.task('watch', function(tag) { +gulp.task('watchJSFiles', function(tag) { + 'use strict'; if(tag){ tagVersion = tag; @@ -153,7 +188,19 @@ gulp.task('watch', function(tag) { gulp.watch([ _src.JS_SRC, '!' + _src.JS_LIBS, - ], ['jshint', 'copyBuildFiles']); + ], ['jshint', 'copyJSBuildFiles']); +}); + +gulp.task('watchCSSFiles', function(tag) { + 'use strict'; + + if(tag){ + tagVersion = tag; + } + + gulp.watch([ + _src.CSS_SRC, + ], ['gzipCSS']); }); /*******************************************/ @@ -165,6 +212,7 @@ gulp.task('watch', function(tag) { * WARNING: DO NOT REMOVE THIS TASK!!! */ gulp.task('production', function(tag) { + 'use strict'; if(tag !== null){ tagVersion = tag; @@ -172,6 +220,7 @@ gulp.task('production', function(tag) { // use run-sequence until gulp v4.0 is released runSequence( + 'gzipCSS', 'requirejs' ); } @@ -183,18 +232,40 @@ gulp.task('production', function(tag) { * WARNING: DO NOT REMOVE THIS TASK!!! */ gulp.task('default', function(tag) { + 'use strict'; if(tag){ tagVersion = tag; } runSequence( + 'gzipCSS', 'jshint', - 'copyBuildFiles', - 'watch' + 'copyJSBuildFiles', + 'watchJSFiles', + 'watchCSSFiles' ); }); +/* +// This removes all CSS styles "above the fold" from *.css and inlines them +// -> to improve pagespeed. The remaining (main) css file will be lazy loaded afterwards... +// https://github.com/addyosmani/critical +gulp.task('critical', function (cb) { + critical.generate({ + inline: true, + base: './', + src: './public/templates/view/index.html', + dest: './public/templates/view/index-critical.html', + extract: true, + minify: true, + width: 2560, + height: 1440 + }); +}); +*/ + + /** * clear all backend (fat free framework) cache files */ diff --git a/package.json b/package.json index bef78b72..50d8e7b4 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,10 @@ "requirejs": "^2.1.20" }, "devDependencies": { + "critical": "^0.7.0", "gulp": "^3.9.0", "gulp-clean": "^0.3.1", + "gulp-gzip": "^1.2.0", "gulp-if": "^2.0.0", "gulp-jshint": "^1.11.2", "gulp-notify": "^2.2.0", diff --git a/public/img/landing/install_db.jpg b/public/img/landing/install_db.jpg new file mode 100644 index 00000000..5b43819e Binary files /dev/null and b/public/img/landing/install_db.jpg differ diff --git a/public/img/landing/install_settings.jpg b/public/img/landing/install_settings.jpg new file mode 100644 index 00000000..1b3fefe8 Binary files /dev/null and b/public/img/landing/install_settings.jpg differ diff --git a/public/img/landing/thumbs/install_db.jpg b/public/img/landing/thumbs/install_db.jpg new file mode 100644 index 00000000..a0c96d88 Binary files /dev/null and b/public/img/landing/thumbs/install_db.jpg differ diff --git a/public/img/landing/thumbs/install_settings.jpg b/public/img/landing/thumbs/install_settings.jpg new file mode 100644 index 00000000..fd28e6ec Binary files /dev/null and b/public/img/landing/thumbs/install_settings.jpg differ diff --git a/public/templates/view/landingpage.html b/public/templates/view/landingpage.html index 22003793..bc883063 100644 --- a/public/templates/view/landingpage.html +++ b/public/templates/view/landingpage.html @@ -31,7 +31,8 @@