diff --git a/README.md b/README.md index 418dc625..4a6211a2 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ To report bugs use [engelsystem/issues](https://github.com/engelsystem/engelsyst * PHP >= 7.0.0 * MySQL-Server >= 5.5 or MariaDB-Server >= 5.5 * Webserver, i.e. lighttpd, nginx, or Apache + * Node >= 8 (Development/Building only) + * Yarn (Development/Building only) ### Directions: * Clone the master branch: `git clone https://github.com/engelsystem/engelsystem.git` @@ -20,13 +22,20 @@ To report bugs use [engelsystem/issues](https://github.com/engelsystem/engelsyst * Install project dependencies: ```bash composer install + yarn ``` On production systems it is recommended to use ```bash composer install --no-dev composer dump-autoload --optimize + ``` to install the engelsystem + * Build the frontend assets + ```bash + yarn build + ``` + * The webserver must have write access to the ```import``` directory and read access for all other directories * The webserver must point to the ```public``` directory. * The webserver must read the ```.htaccess``` file and ```mod_rewrite``` must be enabled diff --git a/frontend/angelFont/angelFont.css b/frontend/angelFont/angelFont.css new file mode 100644 index 00000000..01551ecd --- /dev/null +++ b/frontend/angelFont/angelFont.css @@ -0,0 +1,28 @@ +@font-face { + font-family: 'angelFont'; + src:url('./angelFont.eot?-kja6ux'); + src:url('./angelFont.eot?#iefix-kja6ux') format('embedded-opentype'), + url('./angelFont.woff?-kja6ux') format('woff'), + url('./angelFont.ttf?-kja6ux') format('truetype'), + url('./angelFont.svg?-kja6ux#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="icon-"], [class*=" icon-"] { + font-family: 'angelFont'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-icon_angel:before { + content: "\e600"; +} diff --git a/frontend/angelFont/angelFont.eot b/frontend/angelFont/angelFont.eot new file mode 100644 index 00000000..9b08a347 Binary files /dev/null and b/frontend/angelFont/angelFont.eot differ diff --git a/frontend/angelFont/angelFont.svg b/frontend/angelFont/angelFont.svg new file mode 100644 index 00000000..e5fdf45a --- /dev/null +++ b/frontend/angelFont/angelFont.svg @@ -0,0 +1,11 @@ + + + +Generated by IcoMoon + + + + + + + \ No newline at end of file diff --git a/frontend/angelFont/angelFont.ttf b/frontend/angelFont/angelFont.ttf new file mode 100644 index 00000000..ac4f0a45 Binary files /dev/null and b/frontend/angelFont/angelFont.ttf differ diff --git a/frontend/angelFont/angelFont.woff b/frontend/angelFont/angelFont.woff new file mode 100644 index 00000000..c7107a54 Binary files /dev/null and b/frontend/angelFont/angelFont.woff differ diff --git a/js/forms.js b/frontend/js/forms.js similarity index 100% rename from js/forms.js rename to frontend/js/forms.js diff --git a/js/moment-countdown.js b/frontend/js/moment-countdown.js similarity index 72% rename from js/moment-countdown.js rename to frontend/js/moment-countdown.js index 78bf3f9d..feb7b604 100644 --- a/js/moment-countdown.js +++ b/frontend/js/moment-countdown.js @@ -1,3 +1,8 @@ +/* + * Initialize all moment countdowns on the page. A moment countdown has the + * class "moment-countdown" and the attribute "data-timestamp" which defines the + * countdown's time goal. + */ $(document).ready(function () { if (typeof moment !== "undefined") { $.each($(".moment-countdown"), function (i, e) { @@ -11,4 +16,4 @@ $(document).ready(function () { }, 1000); }); } -}); \ No newline at end of file +}); diff --git a/js/sticky-headers.js b/frontend/js/sticky-headers.js similarity index 100% rename from js/sticky-headers.js rename to frontend/js/sticky-headers.js diff --git a/js/vendor.js b/frontend/js/vendor.js similarity index 95% rename from js/vendor.js rename to frontend/js/vendor.js index 7fb51099..aa36cd5a 100644 --- a/js/vendor.js +++ b/frontend/js/vendor.js @@ -9,7 +9,6 @@ import 'imports-loader?this=>window&define=>false&exports=>false!moment'; import 'imports-loader?this=>window&define=>false&exports=>false!moment/locale/de'; import './forms'; import './sticky-headers'; -import 'icomoon/style.css'; import './moment-countdown'; $(function () { diff --git a/themes/base.less b/frontend/themes/base.less similarity index 97% rename from themes/base.less rename to frontend/themes/base.less index 0b6eb79c..f9fa139e 100644 --- a/themes/base.less +++ b/frontend/themes/base.less @@ -1,6 +1,5 @@ -@import "../node_modules/bootstrap/less/bootstrap"; - -@icon-font-path: "../fonts/"; +@import "../../node_modules/bootstrap/less/bootstrap"; +@import "../angelFont/angelFont.css"; body { padding-top: 50px; @@ -57,7 +56,7 @@ body { position: relative; font-size: 20px; color: @headings-color; - + .panel-link { position: absolute; width: 100%; @@ -70,7 +69,7 @@ body { opacity: 0; /* Fix to make div clickable in IE */ filter: alpha(opacity=1); /* Fix to make div clickable in IE */ } - + .panel-link:hover { opacity: 0.3; } diff --git a/themes/theme0.less b/frontend/themes/theme0.less similarity index 100% rename from themes/theme0.less rename to frontend/themes/theme0.less diff --git a/themes/theme1.less b/frontend/themes/theme1.less similarity index 99% rename from themes/theme1.less rename to frontend/themes/theme1.less index 5754371a..f1b5bd92 100644 --- a/themes/theme1.less +++ b/frontend/themes/theme1.less @@ -1,4 +1,4 @@ -@import "../node_modules/bootstrap/less/variables"; +@import "../../node_modules/bootstrap/less/variables"; /* The MIT License (MIT) @@ -96,8 +96,6 @@ THE SOFTWARE. // //## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. -//** Load fonts from this directory. -@icon-font-path: "../fonts/"; //** File name for all font files. @icon-font-name: "glyphicons-halflings-regular"; //** Element ID within SVG icon file. diff --git a/themes/theme2.less b/frontend/themes/theme2.less similarity index 93% rename from themes/theme2.less rename to frontend/themes/theme2.less index 259e0619..231dc4c4 100644 --- a/themes/theme2.less +++ b/frontend/themes/theme2.less @@ -1,4 +1,4 @@ -@import "../node_modules/bootstrap/less/variables"; +@import "../../node_modules/bootstrap/less/variables"; @brand-primary: #758499; @brand-success: #7b9c41; diff --git a/themes/theme3.less b/frontend/themes/theme3.less similarity index 96% rename from themes/theme3.less rename to frontend/themes/theme3.less index 6aab3dde..e4012d7b 100644 --- a/themes/theme3.less +++ b/frontend/themes/theme3.less @@ -1,4 +1,4 @@ -@import "../node_modules/bootstrap/less/variables"; +@import "../../node_modules/bootstrap/less/variables"; @brand-primary: #f19224; @brand-success: #39AB50; diff --git a/themes/theme4.less b/frontend/themes/theme4.less similarity index 99% rename from themes/theme4.less rename to frontend/themes/theme4.less index 0e0ab730..40c53f6c 100644 --- a/themes/theme4.less +++ b/frontend/themes/theme4.less @@ -1,4 +1,4 @@ -@import "../node_modules/bootstrap/less/variables"; +@import "../../node_modules/bootstrap/less/variables"; /* The MIT License (MIT) @@ -96,8 +96,6 @@ THE SOFTWARE. // //## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. -//** Load fonts from this directory. -@icon-font-path: "../fonts/"; //** File name for all font files. @icon-font-name: "glyphicons-halflings-regular"; //** Element ID within SVG icon file. @@ -1046,7 +1044,7 @@ a.thumbnail.active { } } -.label-warning, .label-success, .progress-bar-warning, .progress-bar-success, +.label-warning, .label-success, .progress-bar-warning, .progress-bar-success, .panel-warning .panel-heading, .panel-warning .panel-heading a, .panel-success .panel-heading, .panel-success .panel-heading a { color: @gray-darker; diff --git a/themes/theme5.less b/frontend/themes/theme5.less similarity index 94% rename from themes/theme5.less rename to frontend/themes/theme5.less index c9101b7f..bd2b9330 100644 --- a/themes/theme5.less +++ b/frontend/themes/theme5.less @@ -1,4 +1,4 @@ -@import "../node_modules/bootstrap/less/variables"; +@import "../../node_modules/bootstrap/less/variables"; @brand-primary: rgb(164, 28, 49); @brand-success: rgb(153, 204, 0); diff --git a/themes/theme6.less b/frontend/themes/theme6.less similarity index 99% rename from themes/theme6.less rename to frontend/themes/theme6.less index 1b0cd9b9..86c2f463 100644 --- a/themes/theme6.less +++ b/frontend/themes/theme6.less @@ -1,4 +1,4 @@ -@import "../node_modules/bootstrap/less/variables"; +@import "../../node_modules/bootstrap/less/variables"; /* The MIT License (MIT) @@ -99,8 +99,6 @@ THE SOFTWARE. // //## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. -//** Load fonts from this directory. -@icon-font-path: "../fonts/"; //** File name for all font files. @icon-font-name: "glyphicons-halflings-regular"; //** Element ID within SVG icon file. diff --git a/package.json b/package.json index c8c96dc9..ddd8ef8b 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,7 @@ "bootstrap": "^3.3.7", "bootstrap-datepicker": "^1.7.1", "chart.js": "^1.0.2", - "icomoon": "^1.0.0", - "jquery": "^2.1.1", + "jquery": "^3.3.1", "jquery-ui": "^1.11.2", "moment": "^2.8.2", "select2": "^4.0.6-rc.1", @@ -27,10 +26,10 @@ "css-loader": "^0.28.7", "extract-text-webpack-plugin": "^3.0.2", "file-loader": "^1.1.6", - "imports-loader": "^0.7.1", - "less": "^2.7.3", + "imports-loader": "^0.8.0", + "less": "^3.0.2", "less-loader": "^4.0.5", - "style-loader": "^0.19.1", - "webpack": "^3.10.0" + "style-loader": "^0.21.0", + "webpack": "^3" } } diff --git a/webpack.config.js b/webpack.config.js index a743f393..ecfc0704 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -17,24 +17,10 @@ const plugins = [ new ExtractTextPlugin('[name].css'), ]; -// if (!__DEV__) { -// plugins.push( -// new webpack.optimize.UglifyJsPlugin({ -// compress: { -// warnings: false, -// }, -// output: { -// comments: false, -// }, -// screwIe8: true, -// sourceMap: false, -// }) -// ); -// } const themeEntries = {}; for (let i = 0; i < 7; i++) { - themeEntries[`theme${i}`] = `./themes/theme${i}.less`; + themeEntries[`theme${i}`] = `./frontend/themes/theme${i}.less`; } module.exports = { @@ -44,7 +30,7 @@ module.exports = { }, entry: { ...themeEntries, - vendor: './js/vendor.js', + vendor: './frontend/js/vendor.js', }, output: { path: path.resolve('public/assets'),