Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f6d518e67 | ||
|
|
8d6e853d4c | ||
|
|
6b6572db67 | ||
|
|
b46b24bb83 | ||
|
|
b12fb86c1c | ||
|
|
84dc9d74b9 | ||
|
|
114d0c7cd9 | ||
|
|
bb553924d0 | ||
|
|
73a14e545b | ||
|
|
2756aed449 | ||
|
|
289908f302 | ||
|
|
7b9674110e | ||
|
|
e070c9f374 | ||
|
|
95cf933424 | ||
|
|
2aca0010dc | ||
|
|
4701c3f86d | ||
|
|
fb53fdb16d | ||
|
|
9bee381f6c | ||
|
|
8125895538 | ||
|
|
fed5f8c44d | ||
|
|
36c120d1bf | ||
|
|
2960aa7497 | ||
|
|
e5d22609f3 | ||
|
|
2b35391800 | ||
|
|
e42813e879 | ||
|
|
851a0df432 | ||
|
|
c6271899aa | ||
|
|
8b8c9b60d9 | ||
|
|
df9fd7d357 | ||
|
|
b4bff71008 | ||
|
|
a2d561db87 | ||
|
|
d30bfc5a53 | ||
|
|
8fab0d57a7 | ||
|
|
ae7ed5a217 |
No files matched your search
@@ -0,0 +1,9 @@
|
|||||||
|
.git
|
||||||
|
vendor
|
||||||
|
node_modules
|
||||||
|
storage/logs
|
||||||
|
storage/framework/cache/*
|
||||||
|
storage/framework/sessions/*
|
||||||
|
storage/framework/views/*
|
||||||
|
storage/app/public
|
||||||
|
.env
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
APP_NAME="NH Gooi (dev)"
|
||||||
|
APP_ENV=staging
|
||||||
|
APP_KEY=pHU3XfraRBc4T54pe5hM0WsCz1zZxWG3
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_LOG_LEVEL=error
|
||||||
|
APP_URL=https://dev.nhgooi.nl
|
||||||
|
IMAGE_BASE_URL=https://dev.nhgooi.nl/
|
||||||
|
|
||||||
|
API_URL=https://api-new.nhgooi.nl/
|
||||||
|
|
||||||
|
BROADCAST_DRIVER=log
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
|
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_DRIVER=smtp
|
||||||
|
MAIL_HOST=in-v3.mailjet.com
|
||||||
|
MAIL_PORT=25
|
||||||
|
MAIL_USERNAME=08eb4dbf869367bc1478f0777b9de044
|
||||||
|
MAIL_PASSWORD=eb26e4f3e5e6dbeb8aad361c69bf5ff1
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
|
||||||
|
PUSHER_APP_ID=
|
||||||
|
PUSHER_APP_KEY=
|
||||||
|
PUSHER_APP_SECRET=
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=nhgooi.nl
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=radio6fm_web
|
||||||
|
DB_USERNAME=6fmstats
|
||||||
|
DB_PASSWORD=C6h938EJ2cd5p4cT
|
||||||
|
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
name: Build and Deploy
|
||||||
|
run-name: ${{ gitea.actor }} is building ${{ gitea.repository }}
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'Dockerfile'
|
||||||
|
- 'composer.json'
|
||||||
|
- 'composer.lock'
|
||||||
|
- '.gitea/workflows/build-docker.yml'
|
||||||
|
- 'version' # Change this file to force rebuild
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
REGISTRY: git.nhgooi.nl
|
||||||
|
IMAGE: git.nhgooi.nl/nh_gooi/nhgooi.nl
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Login to Gitea Container Registry
|
||||||
|
run: |
|
||||||
|
echo "${{ secrets.REGISTRY_TOKEN }}" | \
|
||||||
|
docker login "$REGISTRY" \
|
||||||
|
-u "${{ gitea.actor }}" \
|
||||||
|
--password-stdin
|
||||||
|
|
||||||
|
- name: Build image
|
||||||
|
run: |
|
||||||
|
docker build \
|
||||||
|
-t "$IMAGE:${{ gitea.sha }}" \
|
||||||
|
-t "$IMAGE:latest" \
|
||||||
|
.
|
||||||
|
|
||||||
|
- name: Push image
|
||||||
|
run: |
|
||||||
|
docker push "$IMAGE:${{ gitea.sha }}"
|
||||||
|
docker push "$IMAGE:latest"
|
||||||
|
|
||||||
|
# - name: Trigger deployment
|
||||||
|
# run: |
|
||||||
|
# curl --fail-with-body \
|
||||||
|
# -X POST \
|
||||||
|
# -H "Content-Type: application/json" \
|
||||||
|
# -d '{
|
||||||
|
# "image": "'"$IMAGE:${{ gitea.sha }}"'",
|
||||||
|
# "commit": "${{ gitea.sha }}",
|
||||||
|
# "repository": "${{ gitea.repository }}"
|
||||||
|
# }' \
|
||||||
|
# "${{ secrets.DEPLOY_WEBHOOK_URL }}"
|
||||||
@@ -1,12 +1,23 @@
|
|||||||
/node_modules
|
.phpunit.cache
|
||||||
/public/hot
|
node_modules
|
||||||
/public/storage
|
app/public/build
|
||||||
/storage/*.key
|
app/public/hot
|
||||||
/vendor
|
app/public/storage
|
||||||
/.idea
|
app/storage/*.key
|
||||||
/.vagrant
|
app/bootstrap
|
||||||
|
app/storage
|
||||||
|
bootstrap/cache
|
||||||
|
vendor
|
||||||
|
.env
|
||||||
|
.env.backup
|
||||||
|
.env.production
|
||||||
|
.phpunit.result.cache
|
||||||
Homestead.json
|
Homestead.json
|
||||||
Homestead.yaml
|
Homestead.yaml
|
||||||
|
auth.json
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
.env
|
.fleet
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
update
|
||||||
@@ -1,38 +1,73 @@
|
|||||||
FROM php:8.1-apache
|
FROM php:8.3.36-apache
|
||||||
|
|
||||||
RUN apt-get update \
|
# Install Node.js
|
||||||
&& apt-get -y install \
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs
|
||||||
g++ \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxslt-dev \
|
|
||||||
libzip-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
msmtp \
|
|
||||||
unzip \
|
|
||||||
git \
|
|
||||||
ssl-cert \
|
|
||||||
locales \
|
|
||||||
--no-install-recommends \
|
|
||||||
&& docker-php-ext-install pdo pdo_mysql mysqli xsl xml zip opcache \
|
|
||||||
&& a2enmod rewrite ssl proxy proxy_http headers \
|
|
||||||
&& apt-get purge -y g++ \
|
|
||||||
&& apt-get autoremove -y \
|
|
||||||
&& rm -r /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Get latest Composer
|
RUN apt-get update && apt-get install -y \
|
||||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
git \
|
||||||
|
curl \
|
||||||
|
libicu-dev \
|
||||||
|
libzip-dev \
|
||||||
|
libonig-dev \
|
||||||
|
libssh2-1 \
|
||||||
|
libssh2-1-dev \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Update the default apache site with the config we created.
|
RUN pecl install ssh2 \
|
||||||
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
|
&& docker-php-ext-enable ssh2 \
|
||||||
|
&& docker-php-ext-configure intl \
|
||||||
|
&& docker-php-ext-install \
|
||||||
|
pdo \
|
||||||
|
pdo_mysql \
|
||||||
|
mysqli \
|
||||||
|
intl \
|
||||||
|
ftp \
|
||||||
|
mbstring \
|
||||||
|
bcmath \
|
||||||
|
zip
|
||||||
|
|
||||||
WORKDIR /var/www/html
|
RUN a2enmod rewrite
|
||||||
# COPY . /var/www/html
|
|
||||||
|
|
||||||
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
|
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
||||||
chown -R www-data:www-data storage/framework && \
|
|
||||||
chmod -R 775 storage
|
|
||||||
|
|
||||||
RUN php artisan cache:clear && \
|
WORKDIR /var/www/app
|
||||||
php artisan config:clear && \
|
|
||||||
php artisan view:clear
|
ENV APACHE_DOCUMENT_ROOT=/var/www/app/public
|
||||||
|
|
||||||
|
RUN sed -ri \
|
||||||
|
-e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' \
|
||||||
|
/etc/apache2/sites-available/*.conf \
|
||||||
|
/etc/apache2/apache2.conf \
|
||||||
|
/etc/apache2/conf-available/*.conf
|
||||||
|
|
||||||
|
RUN echo '<Directory /var/www/app/public>\n\
|
||||||
|
AllowOverride All\n\
|
||||||
|
Require all granted\n\
|
||||||
|
</Directory>' > /etc/apache2/conf-available/laravel.conf \
|
||||||
|
&& a2enconf laravel
|
||||||
|
|
||||||
|
# Copy app files (composer/npm setup happens at runtime via entrypoint)
|
||||||
|
COPY composer.json composer.lock ./
|
||||||
|
COPY package.json package-lock.json* ./
|
||||||
|
COPY scripts/ ./scripts/ 2>/dev/null
|
||||||
|
|
||||||
|
# Note: for Laravel, the COPY . . needs to be before the composer install
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Create storage directories
|
||||||
|
RUN mkdir -p \
|
||||||
|
storage/app \
|
||||||
|
storage/framework/cache/data \
|
||||||
|
storage/framework/sessions \
|
||||||
|
storage/framework/views \
|
||||||
|
storage/logs \
|
||||||
|
bootstrap/cache \
|
||||||
|
public/assets/vendor
|
||||||
|
|
||||||
|
# Copy and set up entrypoint script
|
||||||
|
COPY docker-entrypoint.sh /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
FROM php:8.2-apache
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get -y install \
|
|
||||||
g++ \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxslt-dev \
|
|
||||||
libzip-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
msmtp \
|
|
||||||
unzip \
|
|
||||||
git \
|
|
||||||
ssl-cert \
|
|
||||||
locales \
|
|
||||||
--no-install-recommends \
|
|
||||||
&& docker-php-ext-install pdo pdo_mysql mysqli xsl xml zip opcache \
|
|
||||||
&& a2enmod rewrite ssl proxy proxy_http headers \
|
|
||||||
&& apt-get purge -y g++ \
|
|
||||||
&& apt-get autoremove -y \
|
|
||||||
&& rm -r /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Get latest Composer
|
|
||||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
||||||
|
|
||||||
# Update the default apache site with the config we created.
|
|
||||||
ADD docker/apache.dev.conf /etc/apache2/sites-enabled/000-default.conf
|
|
||||||
|
|
||||||
WORKDIR /var/www/html
|
|
||||||
COPY . /var/www/html
|
|
||||||
|
|
||||||
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
|
|
||||||
chown -R www-data:www-data storage/framework && \
|
|
||||||
chmod -R 775 storage
|
|
||||||
|
|
||||||
# RUN php artisan cache:clear && \
|
|
||||||
# php artisan config:clear && \
|
|
||||||
# php artisan view:clear
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
* To add new packages, add a line below:
|
||||||
|
```json
|
||||||
|
"new-package": "^1.2.3"
|
||||||
|
```
|
||||||
|
|
||||||
|
* If the npm name differs from vendor folder name: Also update the mapping in setup-vendor.js:
|
||||||
|
```json
|
||||||
|
'npm-name': { folder: 'vendor-folder', subdir: 'dist' }
|
||||||
|
```
|
||||||
|
|
||||||
|
* Then regenerate lock file (do this locally, NOT in Docker)
|
||||||
|
```bash
|
||||||
|
rm package-lock.json
|
||||||
|
docker run --rm -v "$PWD:/workspace" -w /workspace node:20 npm install --package-lock-only
|
||||||
|
```
|
||||||
@@ -2,13 +2,15 @@
|
|||||||
|
|
||||||
namespace App\Console;
|
namespace App\Console;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Illuminate\Console\Scheduling\Schedule;
|
use Illuminate\Console\Scheduling\Schedule;
|
||||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||||
|
|
||||||
class Kernel extends ConsoleKernel
|
class Kernel extends ConsoleKernel
|
||||||
{
|
{
|
||||||
private $API_URL;
|
private $API_URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Artisan commands provided by your application.
|
* The Artisan commands provided by your application.
|
||||||
@@ -19,6 +21,22 @@ class Kernel extends ConsoleKernel
|
|||||||
//
|
//
|
||||||
];
|
];
|
||||||
|
|
||||||
|
private function getFromApi($url, $file) {
|
||||||
|
$response = Http::connectTimeout(5)
|
||||||
|
->timeout(15)
|
||||||
|
->withHeaders([
|
||||||
|
'Host' => $this->API_HOST
|
||||||
|
])
|
||||||
|
->get($this->API_URL . $url);
|
||||||
|
|
||||||
|
if ($response->successful()) {
|
||||||
|
Storage::disk('local')->put(
|
||||||
|
$file,
|
||||||
|
$response->body()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define the application's command schedule.
|
* Define the application's command schedule.
|
||||||
*
|
*
|
||||||
@@ -27,39 +45,40 @@ class Kernel extends ConsoleKernel
|
|||||||
*/
|
*/
|
||||||
protected function schedule(Schedule $schedule)
|
protected function schedule(Schedule $schedule)
|
||||||
{
|
{
|
||||||
$this->API_URL = env('API_URL', 'https://api.nhgooi.nl/');
|
$this->API_URL = env('API_URL', 'https://api.nhgooi.nl/');
|
||||||
|
$this->API_HOST = env('API_HOST', $this->API_URL);
|
||||||
|
|
||||||
// Update latest news (3 items)
|
// Update latest news (3 items)
|
||||||
$schedule->call(function() {
|
$schedule->call(function () {
|
||||||
Storage::disk('local')->put('laatste_nieuws.json', file_get_contents($this->API_URL . 'nieuws/overzicht?pagina=1&aantal=3'));
|
$this->getFromApi('nieuws/overzicht?pagina=1&aantal=3', 'laatste_nieuws.json');
|
||||||
Storage::disk('local')->put('populair_nieuws.json', file_get_contents($this->API_URL . 'nieuws/populair'));
|
$this->getFromApi('nieuws/populair', 'populair_nieuws.json');
|
||||||
})->everyMinute();
|
})->everyMinute();
|
||||||
|
|
||||||
// Update now / later
|
// Update now / later
|
||||||
$schedule->call(function() {
|
$schedule->call(function () {
|
||||||
Storage::disk('local')->put('nu_straks.json', file_get_contents($this->API_URL . 'programma/schema/nustraks'));
|
$this->getFromApi('programma/schema/nustraks', 'nu_straks.json');
|
||||||
Storage::disk('local')->put('zojuist.json', file_get_contents($this->API_URL . 'programma/schema/recent'));
|
$this->getFromApi('programma/schema/recent', 'zojuist.json');
|
||||||
})->everyMinute();
|
})->everyMinute();
|
||||||
|
|
||||||
// Update latest podcasts (6 items)
|
// Update latest podcasts (6 items)
|
||||||
$schedule->call(function() {
|
$schedule->call(function () {
|
||||||
Storage::disk('local')->put('laatste_podcasts.json', file_get_contents($this->API_URL . 'podcast/overzicht?pagina=1&aantal=6'));
|
$this->getFromApi('podcast/overzicht?pagina=1&aantal=6', 'laatste_podcasts.json');
|
||||||
})->everyMinute();
|
})->everyMinute();
|
||||||
|
|
||||||
// Update calendar items
|
// Update calendar items
|
||||||
$schedule->call(function() {
|
$schedule->call(function () {
|
||||||
Storage::disk('local')->put('regioagenda.json', file_get_contents($this->API_URL . 'agenda/overzicht'));
|
$this->getFromApi('agenda/overzicht', 'regioagenda.json');
|
||||||
})->everyMinute();
|
})->everyMinute();
|
||||||
|
|
||||||
// Update blogs
|
// Update blogs
|
||||||
$schedule->call(function() {
|
$schedule->call(function () {
|
||||||
Storage::disk('local')->put('blogs.json', file_get_contents($this->API_URL . 'blog/overzicht'));
|
$this->getFromApi('blog/overzicht', 'blogs.json');
|
||||||
})->everyMinute();
|
})->everyMinute();
|
||||||
|
|
||||||
// Update featured images
|
// Update featured images
|
||||||
$schedule->call(function() {
|
$schedule->call(function () {
|
||||||
Storage::disk('local')->put('beelden.json', file_get_contents($this->API_URL . 'beelden/overzicht'));
|
$this->getFromApi('beelden/overzicht', 'beelden.json');
|
||||||
})->everyMinute();
|
})->everyMinute();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -12,7 +12,17 @@ class ContactController extends Controller
|
|||||||
{
|
{
|
||||||
public function show()
|
public function show()
|
||||||
{
|
{
|
||||||
return view('contact');
|
$page = $this->API('statisch/contact');
|
||||||
|
if ($page == null) {
|
||||||
|
return abort(404);
|
||||||
|
}
|
||||||
|
|
||||||
|
$page->published = Controller::JsonToDateTime($page->published);
|
||||||
|
if ($page->edited) {
|
||||||
|
$page->edited = Controller::JsonToDateTime($page->edited);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('contact', ['page' => $page]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function submit(Request $request)
|
public function submit(Request $request)
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ use Illuminate\Foundation\Bus\DispatchesJobs;
|
|||||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller as BaseController;
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Facades\Session;
|
use Illuminate\Support\Facades\Session;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Illuminate\Support\Facades\View;
|
use Illuminate\Support\Facades\View;
|
||||||
@@ -16,6 +18,8 @@ class Controller extends BaseController
|
|||||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||||
|
|
||||||
protected $API_URL;
|
protected $API_URL;
|
||||||
|
protected $API_HOST;
|
||||||
|
|
||||||
|
|
||||||
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
|
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
|
||||||
{
|
{
|
||||||
@@ -38,6 +42,7 @@ class Controller extends BaseController
|
|||||||
{
|
{
|
||||||
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
||||||
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
||||||
|
$this->API_HOST = env('API_HOST', $this->API_URL);
|
||||||
|
|
||||||
//View::share('onAir', file_get_contents(url('onair')));
|
//View::share('onAir', file_get_contents(url('onair')));
|
||||||
View::composer('widgets.laatstenieuws', function ($view) {
|
View::composer('widgets.laatstenieuws', function ($view) {
|
||||||
@@ -92,7 +97,12 @@ class Controller extends BaseController
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
View::composer('widgets.menu', function($view) {
|
View::composer('widgets.menu', function($view) {
|
||||||
$view->with('items', json_decode(Storage::get('static/menu.json')));
|
try {
|
||||||
|
$menuData = json_decode(Storage::get('static/menu.json'));
|
||||||
|
$view->with('items', $menuData ?? []);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
$view->with('items', []);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
View::share('disableBanners', env('DISABLE_BANNERS', false));
|
View::share('disableBanners', env('DISABLE_BANNERS', false));
|
||||||
@@ -104,49 +114,71 @@ class Controller extends BaseController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
app('db')->insert(
|
// app('db')->insert(
|
||||||
'INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
|
// 'INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
|
||||||
[
|
// [
|
||||||
'type' => $type,
|
// 'type' => $type,
|
||||||
'id' => $id,
|
// 'id' => $id,
|
||||||
'ip' => $request->server('REMOTE_ADDR'),
|
// 'ip' => $request->server('REMOTE_ADDR'),
|
||||||
'session' => md5(Session::getId()),
|
// 'session' => md5(Session::getId()),
|
||||||
'referer' => $request->server('HTTP_REFERRER')
|
// 'referer' => $request->server('HTTP_REFERRER')
|
||||||
]
|
// ]
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function API($url)
|
protected function API($url)
|
||||||
{
|
{
|
||||||
$arrContextOptions = [
|
try {
|
||||||
'ssl' => [
|
$response = Http::connectTimeout(5)
|
||||||
"verify_peer" => false,
|
->timeout(15)
|
||||||
"verify_peer_name" => false,
|
->withHeaders([
|
||||||
],
|
'Host' => $this->API_HOST,
|
||||||
'http' => [
|
'X-Api-Key' => sha1(request()->server('REMOTE_ADDR')),
|
||||||
'method' => 'GET',
|
'X-User-Agent' => request()->server('HTTP_USER_AGENT')
|
||||||
'header' => 'X-Api-Key: ' . sha1(request()->server('REMOTE_ADDR')) . "\r\n"
|
])
|
||||||
. 'X-User-Agent: ' . request()->server('HTTP_USER_AGENT') . "\r\n"
|
->get($this->API_URL . $url);
|
||||||
]
|
|
||||||
];
|
if ($response->successful()) {
|
||||||
//\dump($http_response_header);
|
$body = $response->body();
|
||||||
$result = @file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions));
|
return $body ? json_decode($body) : null;
|
||||||
return $result ? json_decode($result) : null;
|
}
|
||||||
|
Log::warning('API request failed', [
|
||||||
|
'url' => $this->API_URL . $url,
|
||||||
|
'status' => $response->status()
|
||||||
|
]);
|
||||||
|
return null;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Log::error('API request error', [
|
||||||
|
'url' => $this->API_URL . $url,
|
||||||
|
'error' => $e->getMessage()
|
||||||
|
]);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function checkAPI($url)
|
protected function checkAPI($url)
|
||||||
{
|
{
|
||||||
return $this->get_http_response_code($this->API_URL . $url);
|
return $this->getHttpResponseCode($url);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_http_response_code($url)
|
protected function getHttpResponseCode($url)
|
||||||
{
|
{
|
||||||
$headers = get_headers($url);
|
try {
|
||||||
return substr($headers[0], 9, 3);
|
$response = Http::connectTimeout(5)
|
||||||
|
->timeout(15)
|
||||||
|
->withHeaders([
|
||||||
|
'Host' => $this->API_HOST,
|
||||||
|
'X-Api-Key' => sha1(request()->server('REMOTE_ADDR')),
|
||||||
|
'X-User-Agent' => request()->server('HTTP_USER_AGENT')
|
||||||
|
])
|
||||||
|
->head($this->API_URL . $url);
|
||||||
|
|
||||||
|
return $response->status();
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected static function JsonToDateTime($obj)
|
protected static function JsonToDateTime($obj)
|
||||||
{
|
{
|
||||||
return is_object($obj) ? new \DateTime($obj->date, new \DateTimeZone($obj->timezone)) : \Carbon\Carbon::parse($obj)->setTimezone(date_default_timezone_get());
|
return is_object($obj) ? new \DateTime($obj->date, new \DateTimeZone($obj->timezone)) : \Carbon\Carbon::parse($obj)->setTimezone(date_default_timezone_get());
|
||||||
@@ -169,13 +201,13 @@ class Controller extends BaseController
|
|||||||
public function getSidebareData()
|
public function getSidebareData()
|
||||||
{
|
{
|
||||||
$populair = [];
|
$populair = [];
|
||||||
$apiResult = $this->API('nieuws/populair?aantal=5');
|
$apiResult = (object) $this->API('nieuws/populair?aantal=5');
|
||||||
foreach ($apiResult->news as $_newsItem) {
|
foreach ($apiResult->news as $_newsItem) {
|
||||||
$populair[] = new \Model\NewsItem($_newsItem);
|
$populair[] = new \Model\NewsItem($_newsItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
$newsItems = [];
|
$newsItems = [];
|
||||||
$apiResult = $this->API('nieuws/overzicht?aantal=5');
|
$apiResult = (object) $this->API('nieuws/overzicht?aantal=5');
|
||||||
foreach ($apiResult->news as $_newsItem) {
|
foreach ($apiResult->news as $_newsItem) {
|
||||||
$newsItems[] = new \Model\NewsItem($_newsItem);
|
$newsItems[] = new \Model\NewsItem($_newsItem);
|
||||||
}
|
}
|
||||||
@@ -189,13 +221,15 @@ class Controller extends BaseController
|
|||||||
return view($slug);
|
return view($slug);
|
||||||
}
|
}
|
||||||
|
|
||||||
$page = $this->API('statisch/' . $slug);
|
$page = (object) $this->API('statisch/' . $slug);
|
||||||
if ($page == null) {
|
if ($page == null || !isset($page->title)) {
|
||||||
return abort(404);
|
return abort(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$page->published = Controller::JsonToDateTime($page->published);
|
if(isset($page->published)) {
|
||||||
if ($page->edited) {
|
$page->published = Controller::JsonToDateTime($page->published);
|
||||||
|
}
|
||||||
|
if (isset($page->edited) && $page->edited) {
|
||||||
$page->edited = Controller::JsonToDateTime($page->edited);
|
$page->edited = Controller::JsonToDateTime($page->edited);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
<?php return array (
|
|
||||||
'laravel/sail' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Laravel\\Sail\\SailServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'laravel/sanctum' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'laravel/tinker' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'laravelcollective/html' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
),
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
'Form' => 'Collective\\Html\\FormFacade',
|
|
||||||
'Html' => 'Collective\\Html\\HtmlFacade',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'nesbot/carbon' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Carbon\\Laravel\\ServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'nunomaduro/collision' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'nunomaduro/termwind' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'ossycodes/friendlycaptcha' =>
|
|
||||||
array (
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
'FriendlyCaptcha' => 'Ossycodes\\FriendlyCaptcha\\Facades\\FriendlyCaptcha',
|
|
||||||
),
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Ossycodes\\FriendlyCaptcha\\FriendlyCaptchaServiceProvider',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'spatie/laravel-ignition' =>
|
|
||||||
array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
|
||||||
),
|
|
||||||
'aliases' =>
|
|
||||||
array (
|
|
||||||
'Flare' => 'Spatie\\LaravelIgnition\\Facades\\Flare',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
@@ -1,253 +0,0 @@
|
|||||||
<?php return array (
|
|
||||||
'providers' =>
|
|
||||||
array (
|
|
||||||
0 => 'Illuminate\\Auth\\AuthServiceProvider',
|
|
||||||
1 => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
|
||||||
2 => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
3 => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
4 => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
5 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
|
||||||
6 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
|
||||||
7 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
|
||||||
8 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
|
||||||
9 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
|
||||||
10 => 'Illuminate\\Hashing\\HashServiceProvider',
|
|
||||||
11 => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
12 => 'Illuminate\\Notifications\\NotificationServiceProvider',
|
|
||||||
13 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
|
||||||
14 => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
|
||||||
15 => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
16 => 'Illuminate\\Redis\\RedisServiceProvider',
|
|
||||||
17 => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
|
||||||
18 => 'Illuminate\\Session\\SessionServiceProvider',
|
|
||||||
19 => 'Illuminate\\Translation\\TranslationServiceProvider',
|
|
||||||
20 => 'Illuminate\\Validation\\ValidationServiceProvider',
|
|
||||||
21 => 'Illuminate\\View\\ViewServiceProvider',
|
|
||||||
22 => 'Laravel\\Sail\\SailServiceProvider',
|
|
||||||
23 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
|
||||||
24 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
|
||||||
25 => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
26 => 'Carbon\\Laravel\\ServiceProvider',
|
|
||||||
27 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
|
||||||
28 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
|
||||||
29 => 'Ossycodes\\FriendlyCaptcha\\FriendlyCaptchaServiceProvider',
|
|
||||||
30 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
|
||||||
31 => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
32 => 'Laravel\\Tinker\\TinkerServiceProvider',
|
|
||||||
33 => 'App\\Providers\\AppServiceProvider',
|
|
||||||
34 => 'App\\Providers\\AuthServiceProvider',
|
|
||||||
35 => 'App\\Providers\\EventServiceProvider',
|
|
||||||
36 => 'App\\Providers\\RouteServiceProvider',
|
|
||||||
),
|
|
||||||
'eager' =>
|
|
||||||
array (
|
|
||||||
0 => 'Illuminate\\Auth\\AuthServiceProvider',
|
|
||||||
1 => 'Illuminate\\Cookie\\CookieServiceProvider',
|
|
||||||
2 => 'Illuminate\\Database\\DatabaseServiceProvider',
|
|
||||||
3 => 'Illuminate\\Encryption\\EncryptionServiceProvider',
|
|
||||||
4 => 'Illuminate\\Filesystem\\FilesystemServiceProvider',
|
|
||||||
5 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider',
|
|
||||||
6 => 'Illuminate\\Notifications\\NotificationServiceProvider',
|
|
||||||
7 => 'Illuminate\\Pagination\\PaginationServiceProvider',
|
|
||||||
8 => 'Illuminate\\Session\\SessionServiceProvider',
|
|
||||||
9 => 'Illuminate\\View\\ViewServiceProvider',
|
|
||||||
10 => 'Laravel\\Sanctum\\SanctumServiceProvider',
|
|
||||||
11 => 'Carbon\\Laravel\\ServiceProvider',
|
|
||||||
12 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
|
|
||||||
13 => 'Termwind\\Laravel\\TermwindServiceProvider',
|
|
||||||
14 => 'Ossycodes\\FriendlyCaptcha\\FriendlyCaptchaServiceProvider',
|
|
||||||
15 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
|
|
||||||
16 => 'App\\Providers\\AppServiceProvider',
|
|
||||||
17 => 'App\\Providers\\AuthServiceProvider',
|
|
||||||
18 => 'App\\Providers\\EventServiceProvider',
|
|
||||||
19 => 'App\\Providers\\RouteServiceProvider',
|
|
||||||
),
|
|
||||||
'deferred' =>
|
|
||||||
array (
|
|
||||||
'Illuminate\\Broadcasting\\BroadcastManager' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Broadcasting\\Factory' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Broadcasting\\Broadcaster' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider',
|
|
||||||
'Illuminate\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'Illuminate\\Bus\\BatchRepository' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'Illuminate\\Bus\\DatabaseBatchRepository' => 'Illuminate\\Bus\\BusServiceProvider',
|
|
||||||
'cache' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'cache.store' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'cache.psr6' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'memcached.connector' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'Illuminate\\Cache\\RateLimiter' => 'Illuminate\\Cache\\CacheServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\AboutCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Cache\\Console\\ClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Cache\\Console\\ForgetCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ClearCompiledCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Auth\\Console\\ClearResetsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ConfigCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ConfigClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\DbCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\MonitorCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\PruneCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\ShowCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\TableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\WipeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\DownCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EnvironmentCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EnvironmentDecryptCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EnvironmentEncryptCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EventCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EventClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EventListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\KeyGenerateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\OptimizeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\OptimizeClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\PackageDiscoverCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\ClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\ListFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\FlushFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\ForgetFailedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\ListenCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\MonitorCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\PruneBatchesCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\PruneFailedJobsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\RestartCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\RetryCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\RetryBatchCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\WorkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\RouteCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\RouteClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\RouteListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\DumpCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Seeds\\SeedCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleListCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleClearCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleTestCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Console\\Scheduling\\ScheduleWorkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ShowModelCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\StorageLinkCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\UpCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ViewCacheCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ViewClearCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Cache\\Console\\CacheTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\CastMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ChannelMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ComponentMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ConsoleMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Routing\\Console\\ControllerMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\DocsCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EventGenerateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\EventMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ExceptionMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\JobMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ListenerMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\MailMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Routing\\Console\\MiddlewareMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ModelMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\NotificationMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Notifications\\Console\\NotificationTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ObserverMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\PolicyMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ProviderMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\FailedTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\TableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Queue\\Console\\BatchesTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\RequestMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ResourceMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\RuleMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ScopeMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Session\\Console\\SessionTableCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\ServeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\StubPublishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\TestMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Foundation\\Console\\VendorPublishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'migrator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'migration.repository' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'migration.creator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\MigrateCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\FreshCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\InstallCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\RefreshCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\ResetCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\RollbackCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\StatusCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'composer' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider',
|
|
||||||
'hash' => 'Illuminate\\Hashing\\HashServiceProvider',
|
|
||||||
'hash.driver' => 'Illuminate\\Hashing\\HashServiceProvider',
|
|
||||||
'mail.manager' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'mailer' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'Illuminate\\Mail\\Markdown' => 'Illuminate\\Mail\\MailServiceProvider',
|
|
||||||
'Illuminate\\Contracts\\Pipeline\\Hub' => 'Illuminate\\Pipeline\\PipelineServiceProvider',
|
|
||||||
'queue' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.connection' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.failer' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.listener' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'queue.worker' => 'Illuminate\\Queue\\QueueServiceProvider',
|
|
||||||
'redis' => 'Illuminate\\Redis\\RedisServiceProvider',
|
|
||||||
'redis.connection' => 'Illuminate\\Redis\\RedisServiceProvider',
|
|
||||||
'auth.password' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
|
||||||
'auth.password.broker' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider',
|
|
||||||
'translator' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
|
||||||
'translation.loader' => 'Illuminate\\Translation\\TranslationServiceProvider',
|
|
||||||
'validator' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
|
||||||
'validation.presence' => 'Illuminate\\Validation\\ValidationServiceProvider',
|
|
||||||
'Laravel\\Sail\\Console\\InstallCommand' => 'Laravel\\Sail\\SailServiceProvider',
|
|
||||||
'Laravel\\Sail\\Console\\PublishCommand' => 'Laravel\\Sail\\SailServiceProvider',
|
|
||||||
'command.tinker' => 'Laravel\\Tinker\\TinkerServiceProvider',
|
|
||||||
'html' => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
'form' => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
'Collective\\Html\\HtmlBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
'Collective\\Html\\FormBuilder' => 'Collective\\Html\\HtmlServiceProvider',
|
|
||||||
),
|
|
||||||
'when' =>
|
|
||||||
array (
|
|
||||||
'Illuminate\\Broadcasting\\BroadcastServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Bus\\BusServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Cache\\CacheServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Hashing\\HashServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Mail\\MailServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Pipeline\\PipelineServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Queue\\QueueServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Redis\\RedisServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Translation\\TranslationServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Illuminate\\Validation\\ValidationServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Laravel\\Sail\\SailServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Laravel\\Tinker\\TinkerServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'Collective\\Html\\HtmlServiceProvider' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default Log Channel
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This option defines the default log channel that gets used when writing
|
||||||
|
| messages to the logs. The name specified in this channel must be listed
|
||||||
|
| in the channels configuration array defined below.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'default' => env('LOG_CHANNEL', 'stack'),
|
||||||
|
|
||||||
|
'deprecations' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Channels
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you may configure the log channels for your application. Out of
|
||||||
|
| the box, Laravel uses the Monolog PHP logging library. This gives
|
||||||
|
| you a variety of powerful log handlers / formatters to utilize.
|
||||||
|
|
|
||||||
|
| Available Drivers: "single", "daily", "slack", "syslog",
|
||||||
|
| "errorlog", "monolog", "custom", "stack"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'channels' => [
|
||||||
|
'stack' => [
|
||||||
|
'driver' => 'stack',
|
||||||
|
'channels' => ['single'],
|
||||||
|
'ignore_exceptions' => false,
|
||||||
|
],
|
||||||
|
|
||||||
|
'single' => [
|
||||||
|
'driver' => 'single',
|
||||||
|
'path' => storage_path('logs/laravel.log'),
|
||||||
|
'level' => env('LOG_LEVEL', 'debug'),
|
||||||
|
],
|
||||||
|
|
||||||
|
'daily' => [
|
||||||
|
'driver' => 'daily',
|
||||||
|
'path' => storage_path('logs/laravel.log'),
|
||||||
|
'level' => env('LOG_LEVEL', 'debug'),
|
||||||
|
'days' => 14,
|
||||||
|
],
|
||||||
|
|
||||||
|
'slack' => [
|
||||||
|
'driver' => 'slack',
|
||||||
|
'url' => env('LOG_SLACK_WEBHOOK_URL'),
|
||||||
|
'username' => 'Laravel Log',
|
||||||
|
'emoji' => ':boom:',
|
||||||
|
'level' => env('LOG_LEVEL', 'critical'),
|
||||||
|
],
|
||||||
|
|
||||||
|
'papertrail' => [
|
||||||
|
'driver' => 'monolog',
|
||||||
|
'level' => env('LOG_LEVEL', 'debug'),
|
||||||
|
'handler' => \Monolog\Handler\SyslogUdpHandler::class,
|
||||||
|
'handler_with' => [
|
||||||
|
'host' => env('PAPERTRAIL_URL'),
|
||||||
|
'port' => env('PAPERTRAIL_PORT'),
|
||||||
|
'facility' => LOG_USER,
|
||||||
|
'level' => env('LOG_LEVEL', 'debug'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'stderr' => [
|
||||||
|
'driver' => 'monolog',
|
||||||
|
'level' => env('LOG_LEVEL', 'debug'),
|
||||||
|
'handler' => \Monolog\Handler\StreamHandler::class,
|
||||||
|
'formatter' => env('LOG_STDERR_FORMATTER'),
|
||||||
|
'with' => [
|
||||||
|
'stream' => 'php://stderr',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'syslog' => [
|
||||||
|
'driver' => 'syslog',
|
||||||
|
'level' => env('LOG_LEVEL', 'debug'),
|
||||||
|
'facility' => LOG_USER,
|
||||||
|
],
|
||||||
|
|
||||||
|
'errorlog' => [
|
||||||
|
'driver' => 'errorlog',
|
||||||
|
'level' => env('LOG_LEVEL', 'debug'),
|
||||||
|
],
|
||||||
|
|
||||||
|
'null' => [
|
||||||
|
'driver' => 'monolog',
|
||||||
|
'handler' => \Monolog\Handler\NullHandler::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
'emergency' => [
|
||||||
|
'path' => storage_path('logs/laravel.log'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd /var/www/app
|
||||||
|
|
||||||
|
# Set HOME for npm cache (www-data user needs writable cache directory)
|
||||||
|
export HOME=/tmp
|
||||||
|
|
||||||
|
echo "Setting up dependencies..."
|
||||||
|
|
||||||
|
# Create vendor directories and fix permissions
|
||||||
|
echo "Fixing permissions..."
|
||||||
|
mkdir -p bootstrap/cache storage/framework storage/logs public/assets/vendor
|
||||||
|
chown -R www-data:www-data bootstrap/cache storage/framework storage/logs public/assets/vendor
|
||||||
|
chmod -R ug+rwX bootstrap/cache storage/framework storage/logs public/assets/vendor
|
||||||
|
|
||||||
|
# Install PHP dependencies
|
||||||
|
echo "Installing PHP packages..."
|
||||||
|
composer install \
|
||||||
|
--no-dev \
|
||||||
|
--prefer-dist \
|
||||||
|
--no-interaction \
|
||||||
|
--optimize-autoloader
|
||||||
|
|
||||||
|
# Install npm dependencies if package.json has dependencies
|
||||||
|
if grep -q "\"dependencies\"" package.json; then
|
||||||
|
echo "Installing npm packages..."
|
||||||
|
npm ci --omit=dev
|
||||||
|
node scripts/setup-vendor.js
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix permissions
|
||||||
|
echo "Fixing permissions..."
|
||||||
|
chown -R www-data:www-data \
|
||||||
|
bootstrap/cache \
|
||||||
|
public/assets/vendor
|
||||||
|
|
||||||
|
chmod -R ug+rwX bootstrap/cache
|
||||||
|
|
||||||
|
echo "✓ Setup complete, starting Apache..."
|
||||||
|
exec apache2-foreground
|
||||||
@@ -19,28 +19,3 @@ ServerTokens Prod
|
|||||||
CustomLog /var/log/apache2/vhost-access.log combined
|
CustomLog /var/log/apache2/vhost-access.log combined
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
|
|
||||||
<IfModule mod_ssl.c>
|
|
||||||
<VirtualHost *:443>
|
|
||||||
ServerName localhost
|
|
||||||
ServerAdmin support@websight.nl
|
|
||||||
DocumentRoot /var/www/html
|
|
||||||
|
|
||||||
SSLEngine on
|
|
||||||
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
|
||||||
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
|
|
||||||
SSLCompression off
|
|
||||||
SSLProtocol All -SSLv2 -SSLv3
|
|
||||||
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
|
||||||
|
|
||||||
<Directory /var/www/html/>
|
|
||||||
Options -Indexes +FollowSymLinks +MultiViews
|
|
||||||
AllowOverride All
|
|
||||||
Order deny,allow
|
|
||||||
Allow from all
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog /var/log/apache2/ssl-vhost-error.log
|
|
||||||
CustomLog /var/log/apache2/ssl-vhost-access.log combined
|
|
||||||
|
|
||||||
</VirtualHost>
|
|
||||||
</IfModule>
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
# Set ownership
|
||||||
|
chown -R www-data:www-data .
|
||||||
|
|
||||||
|
# Normal permissions
|
||||||
|
find . -type d -exec chmod 775 {} \;
|
||||||
|
find . -type f -exec chmod 664 {} \;
|
||||||
|
|
||||||
|
# Laravel writable directories
|
||||||
|
find storage bootstrap/cache -type d -exec chmod 775 {} \;
|
||||||
|
find storage bootstrap/cache -type f -exec chmod 664 {} \;
|
||||||
|
|
||||||
|
# Laravel CLI
|
||||||
|
chmod 755 artisan
|
||||||
@@ -1,9 +1,18 @@
|
|||||||
{
|
{
|
||||||
"name": "nhgooi.nl",
|
"name": "workspace",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"dependencies": {
|
||||||
|
"air-datepicker": "^3.5.0",
|
||||||
|
"daterangepicker": "^3.1.0",
|
||||||
|
"jquery": "^3.7.0",
|
||||||
|
"jquery-ui": "^1.13.0",
|
||||||
|
"moment": "^2.30.0",
|
||||||
|
"wavesurfer.js": "^7.8.0"
|
||||||
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"grunt": "^1.6.1",
|
"grunt": "^1.6.1",
|
||||||
"grunt-contrib-concat": "^2.1.0",
|
"grunt-contrib-concat": "^2.1.0",
|
||||||
@@ -18,6 +27,12 @@
|
|||||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/air-datepicker": {
|
||||||
|
"version": "3.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/air-datepicker/-/air-datepicker-3.6.0.tgz",
|
||||||
|
"integrity": "sha512-+txUkqa949rXBJDmkQAIb/GehZECJYF4rm9XJxVYtEX22C9WvBpE/XwCUQZBopKIkpg4ycAySJ9lH3JOg9qQTw==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/ansi-styles": {
|
"node_modules/ansi-styles": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||||
@@ -241,6 +256,16 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/daterangepicker": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/daterangepicker/-/daterangepicker-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-DxWXvvPq4srWLCqFugqSV+6CBt/CvQ0dnpXhQ3gl0autcIDAruG1PuGG3gC7yPRNytAD1oU1AcUOzaYhOawhTw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": ">=1.10",
|
||||||
|
"moment": "^2.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/debug": {
|
"node_modules/debug": {
|
||||||
"version": "3.2.7",
|
"version": "3.2.7",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||||
@@ -1075,6 +1100,21 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jquery": {
|
||||||
|
"version": "3.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
|
||||||
|
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/jquery-ui": {
|
||||||
|
"version": "1.14.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.14.2.tgz",
|
||||||
|
"integrity": "sha512-1gSl7PUjyipa2adSr780Ujk16faicrV7PjPPzPtvWk7tTqBnsqp67NNV9jZK2+BIxUPXWSnIUU/LBCgwgGZE+Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": ">=1.12.0 <5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/js-yaml": {
|
"node_modules/js-yaml": {
|
||||||
"version": "3.14.1",
|
"version": "3.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
|
||||||
@@ -1207,6 +1247,15 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/moment": {
|
||||||
|
"version": "2.30.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
|
||||||
|
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
@@ -1740,6 +1789,12 @@
|
|||||||
"node": ">= 0.10"
|
"node": ">= 0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/wavesurfer.js": {
|
||||||
|
"version": "7.12.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/wavesurfer.js/-/wavesurfer.js-7.12.11.tgz",
|
||||||
|
"integrity": "sha512-Sx0yZIz7jRJ9J9p7UL+pl9y0UQBB6UN/XNo+R7Gy4tCR5xZI9jMyA0dnt1R8TMVSQ4LZ10SeB2HJYQ+dV2dPSA==",
|
||||||
|
"license": "BSD-3-Clause"
|
||||||
|
},
|
||||||
"node_modules/websocket-driver": {
|
"node_modules/websocket-driver": {
|
||||||
"version": "0.7.4",
|
"version": "0.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"dev": "grunt watch",
|
||||||
|
"build": "grunt uglify concat",
|
||||||
|
"postinstall": "node scripts/setup-vendor.js || true",
|
||||||
"sass": "sass resources/assets/sass:public/css",
|
"sass": "sass resources/assets/sass:public/css",
|
||||||
"sass-watch": "sass --watch resources/assets/sass:public/css",
|
"sass-watch": "sass --watch resources/assets/sass:public/css",
|
||||||
"sass-minify": "sass resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
"sass-minify": "sass resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
||||||
"sass-minify-watch": "sass --watch resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
"sass-minify-watch": "sass --watch resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
|
||||||
"js-watch": "grunt watch"
|
"js-watch": "grunt watch"
|
||||||
},
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": "^3.7.0",
|
||||||
|
"jquery-ui": "^1.13.0",
|
||||||
|
"moment": "^2.30.0",
|
||||||
|
"daterangepicker": "^3.1.0",
|
||||||
|
"wavesurfer.js": "^7.8.0",
|
||||||
|
"air-datepicker": "^3.5.0"
|
||||||
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"grunt": "^1.6.1",
|
"grunt": "^1.6.1",
|
||||||
"grunt-contrib-concat": "^2.1.0",
|
"grunt-contrib-concat": "^2.1.0",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 183 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 606 B |
|
Before Width: | Height: | Size: 417 B After Width: | Height: | Size: 417 B |