merge pr #427: Use npm to handle frontend dependencies
commit
df30f7d5d8
@ -0,0 +1,17 @@
|
||||
{
|
||||
"presets": [["env", {
|
||||
"targets": {
|
||||
"chrome": 45,
|
||||
"firefox": 42,
|
||||
"safari": 9,
|
||||
"opera": 32,
|
||||
"edge": 12,
|
||||
"iOS": 9
|
||||
},
|
||||
"loose": true,
|
||||
"useBuiltIns": true
|
||||
}]
|
||||
],
|
||||
"plugins": [
|
||||
]
|
||||
}
|
@ -1,16 +1,16 @@
|
||||
@font-face {
|
||||
font-family: 'icomoon';
|
||||
src:url('fonts/icomoon.eot?-kja6ux');
|
||||
src:url('fonts/icomoon.eot?#iefix-kja6ux') format('embedded-opentype'),
|
||||
url('fonts/icomoon.woff?-kja6ux') format('woff'),
|
||||
url('fonts/icomoon.ttf?-kja6ux') format('truetype'),
|
||||
url('fonts/icomoon.svg?-kja6ux#icomoon') format('svg');
|
||||
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: 'icomoon';
|
||||
font-family: 'angelFont';
|
||||
speak: none;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* 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) {
|
||||
var span = $(e);
|
||||
var text = span.html();
|
||||
/* global moment */
|
||||
var timestamp = moment(parseInt(span.attr('data-timestamp') * 1000));
|
||||
span.html(text.replace('%c', timestamp.fromNow()));
|
||||
setInterval(function () {
|
||||
span.html(text.replace('%c', timestamp.fromNow()));
|
||||
}, 1000);
|
||||
});
|
||||
}
|
||||
});
|
@ -0,0 +1,16 @@
|
||||
window.$ = window.jQuery = require('jquery');
|
||||
require('imports-loader?define=>false!jquery-ui');
|
||||
require('bootstrap');
|
||||
require('imports-loader?define=>false&exports=>false!bootstrap-datepicker');
|
||||
require('bootstrap-datepicker/js/locales/bootstrap-datepicker.de');
|
||||
require('bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css');
|
||||
require('imports-loader?this=>window!chart.js');
|
||||
require('imports-loader?this=>window&define=>false&exports=>false!moment');
|
||||
require('imports-loader?this=>window&define=>false&exports=>false!moment/locale/de');
|
||||
require('./forms');
|
||||
require('./sticky-headers');
|
||||
require('./moment-countdown');
|
||||
|
||||
$(function () {
|
||||
moment.locale($('html').attr('lang'));
|
||||
});
|
@ -1,6 +1,5 @@
|
||||
@import "../vendor/twbs/bootstrap/less/bootstrap";
|
||||
|
||||
@icon-font-path: "../../../../vendor/bootstrap/fonts/";
|
||||
@import "../../node_modules/bootstrap/less/bootstrap";
|
||||
@import "../angelFont/angelFont.css";
|
||||
|
||||
body {
|
||||
padding-top: 50px;
|
@ -1,4 +1,4 @@
|
||||
@import "../vendor/twbs/bootstrap/less/variables";
|
||||
@import "../../node_modules/bootstrap/less/variables";
|
||||
|
||||
@brand-primary: #758499;
|
||||
@brand-success: #7b9c41;
|
@ -1,4 +1,4 @@
|
||||
@import "../vendor/twbs/bootstrap/less/variables";
|
||||
@import "../../node_modules/bootstrap/less/variables";
|
||||
|
||||
@brand-primary: #f19224;
|
||||
@brand-success: #39AB50;
|
@ -1,4 +1,4 @@
|
||||
@import "../vendor/twbs/bootstrap/less/variables";
|
||||
@import "../../node_modules/bootstrap/less/variables";
|
||||
|
||||
@brand-primary: rgb(164, 28, 49);
|
||||
@brand-success: rgb(153, 204, 0);
|
@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "engelsystem",
|
||||
"version": "1.0.0",
|
||||
"main": "index.js",
|
||||
"repository": "https://github.com/engelsystem/engelsystem.git",
|
||||
"author": "marudor <marudor@marudor.de>",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"build": "NODE_ENV=production webpack",
|
||||
"build:watch": "webpack --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "^3.3.7",
|
||||
"bootstrap-datepicker": "^1.7.1",
|
||||
"chart.js": "^1.0.2",
|
||||
"jquery": "^3.3.1",
|
||||
"jquery-ui": "^1.11.2",
|
||||
"moment": "^2.8.2",
|
||||
"select2": "^4.0.6-rc.1",
|
||||
"select2-bootstrap-theme": "0.1.0-beta.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-loader": "^7.1.2",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"css-loader": "^0.28.7",
|
||||
"extract-text-webpack-plugin": "^3.0.2",
|
||||
"file-loader": "^1.1.6",
|
||||
"imports-loader": "^0.8.0",
|
||||
"less": "^3.0.2",
|
||||
"less-loader": "^4.0.5",
|
||||
"style-loader": "^0.21.0",
|
||||
"webpack": "^3"
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,19 +0,0 @@
|
||||
/**
|
||||
* 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) {
|
||||
var span = $(e);
|
||||
var text = span.html();
|
||||
/* global moment */
|
||||
var timestamp = moment(parseInt(span.attr("data-timestamp") * 1000));
|
||||
span.html(text.replace("%c", timestamp.fromNow()));
|
||||
setInterval(function () {
|
||||
span.html(text.replace("%c", timestamp.fromNow()));
|
||||
}, 1000);
|
||||
});
|
||||
}
|
||||
});
|
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
../../vendor/twbs/bootstrap/dist
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",monthsTitle:"Monate",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery);
|
@ -1,74 +0,0 @@
|
||||
{
|
||||
"IcoMoonType": "selection",
|
||||
"icons": [
|
||||
{
|
||||
"icon": {
|
||||
"paths": [
|
||||
"M524.315 142.746c-141.014 0-255.328 132.92-255.328 296.886 0 91.993 35.911 174.118 92.405 228.574v68.311l-359.891 105.559v189.127l1021.314 8.797v-189.127l-330.711-118.754h-4.863v-63.913c56.494-54.456 92.405-136.581 92.405-228.574 0-163.965-114.314-296.886-255.328-296.886z",
|
||||
"M524.315 2c-248.453 0-449.864 81.721-449.864 182.53s201.411 182.53 449.864 182.53c248.453 0 449.864-81.721 449.864-182.53s-201.411-182.53-449.864-182.53zM524.315 94.364c205.477 0 372.050 57.106 372.050 127.551s-166.572 127.551-372.050 127.551c-205.477 0-372.050-57.106-372.050-127.551s166.572-127.551 372.050-127.551z"
|
||||
],
|
||||
"attrs": [
|
||||
{},
|
||||
{}
|
||||
],
|
||||
"grid": 0,
|
||||
"tags": [
|
||||
"icon_angel"
|
||||
]
|
||||
},
|
||||
"attrs": [
|
||||
{},
|
||||
{}
|
||||
],
|
||||
"properties": {
|
||||
"order": 4,
|
||||
"id": 0,
|
||||
"prevSize": 32,
|
||||
"code": 58880,
|
||||
"name": "icon_angel",
|
||||
"ligatures": ""
|
||||
},
|
||||
"setIdx": 0,
|
||||
"iconIdx": 0
|
||||
}
|
||||
],
|
||||
"height": 1024,
|
||||
"metadata": {
|
||||
"name": "icomoon"
|
||||
},
|
||||
"preferences": {
|
||||
"fontPref": {
|
||||
"prefix": "icon-",
|
||||
"metadata": {
|
||||
"fontFamily": "icomoon"
|
||||
},
|
||||
"showGlyphs": true,
|
||||
"metrics": {
|
||||
"emSize": 512,
|
||||
"baseline": 6.25,
|
||||
"whitespace": 50
|
||||
},
|
||||
"resetPoint": 58880,
|
||||
"showQuickUse": true,
|
||||
"quickUsageToken": false,
|
||||
"showMetrics": true,
|
||||
"showMetadata": false
|
||||
},
|
||||
"imagePref": {
|
||||
"color": 0,
|
||||
"height": 32,
|
||||
"columns": 16,
|
||||
"margin": 16,
|
||||
"png": false,
|
||||
"sprites": true
|
||||
},
|
||||
"historySize": 100,
|
||||
"showCodes": true,
|
||||
"gridSize": 16,
|
||||
"showLiga": false,
|
||||
"showGrid": true,
|
||||
"showGlyphs": true,
|
||||
"showQuickUse": true,
|
||||
"search": ""
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
FILE_PATH="$(dirname "$0")"
|
||||
|
||||
for file in $(ls "${FILE_PATH}/"*.less); do
|
||||
filename="${file##*/}"
|
||||
themeName="${filename%.less}"
|
||||
|
||||
if [[ "$filename" == "base.less" ]]; then
|
||||
continue;
|
||||
fi
|
||||
|
||||
echo "Building ${themeName}"
|
||||
lessc "${file}" > "${FILE_PATH}/../public/css/${themeName}.css"
|
||||
done
|
@ -0,0 +1,59 @@
|
||||
const path = require('path');
|
||||
const webpack = require('webpack');
|
||||
const ExtractTextPlugin = require("extract-text-webpack-plugin");
|
||||
const nodeEnv = (process.env.NODE_ENV || 'development').trim();
|
||||
|
||||
// eslint-disable-next-line
|
||||
const __DEV__ = nodeEnv !== 'production';
|
||||
|
||||
const devtool = __DEV__ ? '#source-map' : '';
|
||||
|
||||
const plugins = [
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': {
|
||||
NODE_ENV: JSON.stringify(nodeEnv),
|
||||
},
|
||||
}),
|
||||
new ExtractTextPlugin('[name].css'),
|
||||
];
|
||||
|
||||
|
||||
const themeEntries = {};
|
||||
for (let i = 0; i < 7; i++) {
|
||||
themeEntries[`theme${i}`] = `./frontend/themes/theme${i}.less`;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
context: __dirname,
|
||||
resolve: {
|
||||
extensions: ['.js', '.jsx'],
|
||||
},
|
||||
entry: {
|
||||
...themeEntries,
|
||||
vendor: './frontend/js/vendor.js',
|
||||
},
|
||||
output: {
|
||||
path: path.resolve('public/assets'),
|
||||
filename: '[name].js',
|
||||
publicPath: '',
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.jsx?$/,
|
||||
exclude: /(node_modules)/,
|
||||
loader: 'babel-loader',
|
||||
query: { cacheDirectory: true },
|
||||
},
|
||||
{ test: /\.(eot|ttf|otf|svg|woff2?)(\?.*)?$/, loader: 'file-loader' },
|
||||
{ test: /\.json$/, loader: 'json-loader' },
|
||||
{ test: /\.css$/, loader: 'style-loader!css-loader' },
|
||||
{ test: /\.less$/, use: ExtractTextPlugin.extract({
|
||||
fallback: 'style-loader',
|
||||
use: 'css-loader!less-loader'
|
||||
})}
|
||||
],
|
||||
},
|
||||
plugins,
|
||||
devtool,
|
||||
};
|
Loading…
Reference in New Issue