Moved frontend, templates and lang to resources
|
@ -5,7 +5,7 @@ RUN composer --no-ansi dump-autoload --optimize
|
||||||
|
|
||||||
FROM node:8-alpine as themes
|
FROM node:8-alpine as themes
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY frontend/ /app/frontend
|
COPY resources/assets/ /app/resources/assets
|
||||||
COPY .babelrc package.json webpack.config.js /app/
|
COPY .babelrc package.json webpack.config.js /app/
|
||||||
RUN apk add --no-cache yarn
|
RUN apk add --no-cache yarn
|
||||||
RUN yarn install
|
RUN yarn install
|
||||||
|
@ -17,10 +17,9 @@ COPY bin/ /app/bin
|
||||||
COPY config/ /app/config
|
COPY config/ /app/config
|
||||||
COPY db/ /app/db
|
COPY db/ /app/db
|
||||||
COPY includes/ /app/includes
|
COPY includes/ /app/includes
|
||||||
COPY locale/ /app/locale
|
|
||||||
COPY public/ /app/public
|
COPY public/ /app/public
|
||||||
|
COPY resources/ /app/resources
|
||||||
COPY src/ /app/src
|
COPY src/ /app/src
|
||||||
COPY templates/ /app/templates
|
|
||||||
|
|
||||||
COPY composer.json LICENSE package.json README.md /app/
|
COPY composer.json LICENSE package.json README.md /app/
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ require __DIR__ . '/includes.php';
|
||||||
* Check for maintenance
|
* Check for maintenance
|
||||||
*/
|
*/
|
||||||
if ($app->get('config')->get('maintenance')) {
|
if ($app->get('config')->get('maintenance')) {
|
||||||
echo file_get_contents(__DIR__ . '/../templates/layouts/maintenance.html');
|
echo file_get_contents(__DIR__ . '/../resources/views/layouts/maintenance.html');
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,5 +13,5 @@ function credits_title()
|
||||||
*/
|
*/
|
||||||
function guest_credits()
|
function guest_credits()
|
||||||
{
|
{
|
||||||
return view(__DIR__ . '/../../templates/pages/credits.html');
|
return view(__DIR__ . '/../../resources/views/pages/credits.html');
|
||||||
}
|
}
|
||||||
|
|
|
@ -224,7 +224,7 @@ function view_user_shifts()
|
||||||
return page([
|
return page([
|
||||||
div('col-md-12', [
|
div('col-md-12', [
|
||||||
msg(),
|
msg(),
|
||||||
view(__DIR__ . '/../../templates/pages/user-shifts.html', [
|
view(__DIR__ . '/../../resources/views/pages/user-shifts.html', [
|
||||||
'title' => shifts_title(),
|
'title' => shifts_title(),
|
||||||
'room_select' => make_select($rooms, $shiftsFilter->getRooms(), 'rooms', _('Rooms')),
|
'room_select' => make_select($rooms, $shiftsFilter->getRooms(), 'rooms', _('Rooms')),
|
||||||
'start_select' => html_select_key(
|
'start_select' => html_select_key(
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Engelsystem\Renderer\Twig\Extensions\Assets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render a stat for dashborad (big number with label).
|
* Render a stat for dashborad (big number with label).
|
||||||
* If no style given, style is danger if number > 0, and success if number == 0.
|
* If no style given, style is danger if number > 0, and success if number == 0.
|
||||||
|
@ -450,26 +452,39 @@ function table_body($array)
|
||||||
*/
|
*/
|
||||||
function ReplaceSmilies($msg)
|
function ReplaceSmilies($msg)
|
||||||
{
|
{
|
||||||
$msg = str_replace(';o))', '<img src="pic/smiles/icon_redface.gif">', $msg);
|
/** @var Assets $assets */
|
||||||
$msg = str_replace(':-))', '<img src="pic/smiles/icon_redface.gif">', $msg);
|
$assets = app('twig.extension.assets');
|
||||||
$msg = str_replace(';o)', '<img src="pic/smiles/icon_wind.gif">', $msg);
|
|
||||||
$msg = str_replace(':)', '<img src="pic/smiles/icon_smile.gif">', $msg);
|
foreach (
|
||||||
$msg = str_replace(':-)', '<img src="pic/smiles/icon_smile.gif">', $msg);
|
[
|
||||||
$msg = str_replace(':(', '<img src="pic/smiles/icon_sad.gif">', $msg);
|
';o))' => 'redface',
|
||||||
$msg = str_replace(':-(', '<img src="pic/smiles/icon_sad.gif">', $msg);
|
':-))' => 'redface',
|
||||||
$msg = str_replace(':o(', '<img src="pic/smiles/icon_sad.gif">', $msg);
|
';o)' => 'wind',
|
||||||
$msg = str_replace(':o)', '<img src="pic/smiles/icon_lol.gif">', $msg);
|
':)' => 'smile',
|
||||||
$msg = str_replace(';o(', '<img src="pic/smiles/icon_cry.gif">', $msg);
|
':-)' => 'smile',
|
||||||
$msg = str_replace(';(', '<img src="pic/smiles/icon_cry.gif">', $msg);
|
':(' => 'sad',
|
||||||
$msg = str_replace(';-(', '<img src="pic/smiles/icon_cry.gif">', $msg);
|
':-(' => 'sad',
|
||||||
$msg = str_replace('8)', '<img src="pic/smiles/icon_rolleyes.gif">', $msg);
|
':o(' => 'sad',
|
||||||
$msg = str_replace('8o)', '<img src="pic/smiles/icon_rolleyes.gif">', $msg);
|
':o)' => 'lol',
|
||||||
$msg = str_replace(':P', '<img src="pic/smiles/icon_evil.gif">', $msg);
|
':D' => 'lol',
|
||||||
$msg = str_replace(':-P', '<img src="pic/smiles/icon_evil.gif">', $msg);
|
';o(' => 'cry',
|
||||||
$msg = str_replace(':oP', '<img src="pic/smiles/icon_evil.gif">', $msg);
|
';(' => 'cry',
|
||||||
$msg = str_replace(';P', '<img src="pic/smiles/icon_mad.gif">', $msg);
|
';-(' => 'cry',
|
||||||
$msg = str_replace(';oP', '<img src="pic/smiles/icon_mad.gif">', $msg);
|
'8)' => 'rolleyes',
|
||||||
$msg = str_replace('?)', '<img src="pic/smiles/icon_question.gif">', $msg);
|
'8o)' => 'rolleyes',
|
||||||
|
':P' => 'evil',
|
||||||
|
':-P' => 'evil',
|
||||||
|
':oP' => 'evil',
|
||||||
|
';P' => 'mad',
|
||||||
|
';oP' => 'mad',
|
||||||
|
'?)' => 'question',
|
||||||
|
] as $search => $replace
|
||||||
|
) {
|
||||||
|
$msg = str_ireplace($search, sprintf(
|
||||||
|
'<img src="%s">',
|
||||||
|
sprintf($assets->getAsset('emojis/%s.gif'), $replace)
|
||||||
|
), $msg);
|
||||||
|
}
|
||||||
|
|
||||||
return $msg;
|
return $msg;
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 498 B |
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 174 B After Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 248 B |
Before Width: | Height: | Size: 650 B After Width: | Height: | Size: 650 B |
Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 485 B |
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
Before Width: | Height: | Size: 174 B After Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 170 B After Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 561 B |
Before Width: | Height: | Size: 933 B |
Before Width: | Height: | Size: 954 B |
Before Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 956 B |
Before Width: | Height: | Size: 904 B |
Before Width: | Height: | Size: 933 B |
Before Width: | Height: | Size: 961 B |
Before Width: | Height: | Size: 977 B |
Before Width: | Height: | Size: 980 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 939 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 171 B |
Before Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 349 B |
Before Width: | Height: | Size: 171 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 171 B |
Before Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 937 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1009 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 531 B |
Before Width: | Height: | Size: 971 B |
Before Width: | Height: | Size: 915 B |
Before Width: | Height: | Size: 940 B |
Before Width: | Height: | Size: 1005 B |
Before Width: | Height: | Size: 994 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 972 B |
Before Width: | Height: | Size: 929 B |
Before Width: | Height: | Size: 980 B |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 945 B |
Before Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
@ -1,4 +1,4 @@
|
||||||
@import "../../node_modules/bootstrap/less/bootstrap";
|
@import "../../../node_modules/bootstrap/less/bootstrap";
|
||||||
@import "../angelFont/angelFont.css";
|
@import "../angelFont/angelFont.css";
|
||||||
|
|
||||||
body {
|
body {
|
|
@ -1,4 +1,4 @@
|
||||||
@import "../../node_modules/bootstrap/less/variables";
|
@import "../../../node_modules/bootstrap/less/variables";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
|
@ -1,4 +1,4 @@
|
||||||
@import "../../node_modules/bootstrap/less/variables";
|
@import "../../../node_modules/bootstrap/less/variables";
|
||||||
|
|
||||||
@brand-primary: #758499;
|
@brand-primary: #758499;
|
||||||
@brand-success: #7b9c41;
|
@brand-success: #7b9c41;
|
|
@ -1,4 +1,4 @@
|
||||||
@import "../../node_modules/bootstrap/less/variables";
|
@import "../../../node_modules/bootstrap/less/variables";
|
||||||
|
|
||||||
@brand-primary: #f19224;
|
@brand-primary: #f19224;
|
||||||
@brand-success: #39AB50;
|
@brand-success: #39AB50;
|
|
@ -1,4 +1,4 @@
|
||||||
@import "../../node_modules/bootstrap/less/variables";
|
@import "../../../node_modules/bootstrap/less/variables";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
|
@ -1,4 +1,4 @@
|
||||||
@import "../../node_modules/bootstrap/less/variables";
|
@import "../../../node_modules/bootstrap/less/variables";
|
||||||
|
|
||||||
@brand-primary: rgb(164, 28, 49);
|
@brand-primary: rgb(164, 28, 49);
|
||||||
@brand-success: rgb(153, 204, 0);
|
@brand-success: rgb(153, 204, 0);
|
|
@ -1,4 +1,4 @@
|
||||||
@import "../../node_modules/bootstrap/less/variables";
|
@import "../../../node_modules/bootstrap/less/variables";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
|
@ -106,8 +106,10 @@ class Application extends Container
|
||||||
|
|
||||||
$this->instance('path', $appPath);
|
$this->instance('path', $appPath);
|
||||||
$this->instance('path.config', $appPath . DIRECTORY_SEPARATOR . 'config');
|
$this->instance('path.config', $appPath . DIRECTORY_SEPARATOR . 'config');
|
||||||
$this->instance('path.lang', $appPath . DIRECTORY_SEPARATOR . 'locale');
|
$this->instance('path.resources', $appPath . DIRECTORY_SEPARATOR . 'resources');
|
||||||
$this->instance('path.views', $appPath . DIRECTORY_SEPARATOR . 'templates');
|
$this->instance('path.assets', $this->get('path.resources') . DIRECTORY_SEPARATOR . 'assets');
|
||||||
|
$this->instance('path.views', $this->get('path.resources') . DIRECTORY_SEPARATOR . 'views');
|
||||||
|
$this->instance('path.lang', $this->get('path.resources') . DIRECTORY_SEPARATOR . 'lang');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -46,8 +46,10 @@ class ApplicationTest extends TestCase
|
||||||
|
|
||||||
$app->setAppPath('.');
|
$app->setAppPath('.');
|
||||||
$this->assertTrue($app->has('path'));
|
$this->assertTrue($app->has('path'));
|
||||||
|
$this->assertTrue($app->has('path.assets'));
|
||||||
$this->assertTrue($app->has('path.config'));
|
$this->assertTrue($app->has('path.config'));
|
||||||
$this->assertTrue($app->has('path.lang'));
|
$this->assertTrue($app->has('path.lang'));
|
||||||
|
$this->assertTrue($app->has('path.resources'));
|
||||||
$this->assertTrue($app->has('path.views'));
|
$this->assertTrue($app->has('path.views'));
|
||||||
|
|
||||||
$this->assertEquals(realpath('.'), $app->path());
|
$this->assertEquals(realpath('.'), $app->path());
|
||||||
|
|
|
@ -20,7 +20,7 @@ const plugins = [
|
||||||
|
|
||||||
const themeEntries = {};
|
const themeEntries = {};
|
||||||
for (let i = 0; i < 7; i++) {
|
for (let i = 0; i < 7; i++) {
|
||||||
themeEntries[`theme${i}`] = `./frontend/themes/theme${i}.less`;
|
themeEntries[`theme${i}`] = `./resources/assets/themes/theme${i}.less`;
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -30,7 +30,7 @@ module.exports = {
|
||||||
},
|
},
|
||||||
entry: {
|
entry: {
|
||||||
...themeEntries,
|
...themeEntries,
|
||||||
vendor: './frontend/js/vendor.js',
|
vendor: './resources/assets/js/vendor.js',
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
path: path.resolve('public/assets'),
|
path: path.resolve('public/assets'),
|
||||||
|
|