Author SHA1 Message Date
eric.bus 2f6d518e67 Update to PHP 8.3.36 2026-10-21 17:37:38 +02:00
NH Gooi 8d6e853d4c Add /ping endpoint 2026-09-09 21:49:33 +02:00
Mischa Spelt 6b6572db67 Force container rebuild (version bump)
Build and Deploy / build (push) Successful in 1m41s
2026-09-07 11:16:21 +02:00
Mischa Spelt b46b24bb83 Fix JS packages 2026-09-07 11:11:17 +02:00
Mischa Spelt b12fb86c1c Bump wavesurfer to version 7+ 2026-08-26 19:38:14 +02:00
mischa.spelt 84dc9d74b9 Untrack vendor folder 2026-08-25 18:38:29 -01:00
mischa.spelt 114d0c7cd9 Add bootstrap/cache to gitignore, untrack vendor file 2026-08-25 18:38:07 -01:00
mischa.spelt bb553924d0 Remove vendor dir 2026-08-25 18:32:34 -01:00
mischa.spelt 73a14e545b Update .gitignore, refresh package-lock 2026-08-25 18:32:28 -01:00
Mischa Spelt 2756aed449 Fix broken Dockerfile
Build and Deploy / build (push) Successful in 1m41s
2026-08-25 21:05:37 +02:00
Mischa Spelt 289908f302 fix: Correct jQuery vendor path (remove unnecessary /dist/ directory)
Build and Deploy / build (push) Failing after 29s
2026-08-25 16:47:25 +02:00
Mischa Spelt 7b9674110e feat: Add npm dependencies and update vendor paths
- Add package.json dependencies: jquery, jquery-ui, moment, daterangepicker, wavesurfer.js, air-datepicker
- Create scripts/setup-vendor.js to copy npm packages to public/assets/vendor
- Update view templates to use vendor paths instead of old /js/ or CDN URLs
- Clean up legacy commented-out scripts in master layout
2026-08-25 16:17:01 +02:00
Mischa Spelt e070c9f374 Refactor: Move npm/composer setup to entrypoint script for proper volume handling 2026-08-25 14:33:08 +02:00
Mischa Spelt 95cf933424 Action runner: Comment out autodeploy
Build and Deploy / build (push) Successful in 1m45s
2026-08-24 11:14:18 +02:00
Mischa Spelt 2aca0010dc Dockerfile: Make sure the storage and cache directories exist and are writeable before running composer install
Build and Deploy / build (push) Failing after 1m29s
2026-08-24 11:11:04 +02:00
Mischa Spelt 4701c3f86d Build docker
Build and Deploy / build (push) Failing after 35s
2026-08-24 11:06:08 +02:00
Mischa Spelt fb53fdb16d Force docker recreation 2026-08-24 11:00:44 +02:00
root 9bee381f6c API changes 2026-08-18 09:30:38 -01:00
root 8125895538 Fix build failures 2026-08-18 08:27:25 -01:00
root fed5f8c44d Remove bootstrap cache 2026-08-17 17:50:53 -01:00
root 36c120d1bf Gitea runner action
Build and Deploy / build (push) Failing after 43s
2026-08-16 16:26:36 -01:00
NH Gooi 2960aa7497   uit blockquote verwijderd 2026-08-06 21:24:56 +02:00
NH Gooi e5d22609f3 Update dockerfile to remove forced HTTPS because we'll always run this behind a reverse proxy 2026-07-21 20:50:16 +02:00
NH Gooi 2b35391800 Dockerfile CHDIR fix 2026-02-27 15:51:11 +01:00
NH Gooi e42813e879 Tip de redactie link naar /contact 2026-02-27 15:11:00 +01:00
NH Gooi 851a0df432 Contact statische text via API 2026-02-27 14:58:59 +01:00
JoritWebsight c6271899aa Merge pull request 'Add FriendlyCaptcha vendor dir' (#21) from new-contact-page-form into dev
Reviewed-on: #21
2026-02-27 09:34:09 +01:00
Jorit Tijsen 8b8c9b60d9 Add FriendlyCaptcha vendor dir 2026-02-27 09:30:52 +01:00
JoritWebsight df9fd7d357 Merge pull request 'Add copy to dockerfile' (#20) from new-contact-page-form into dev
Reviewed-on: #20
2026-02-25 12:06:08 +01:00
Jorit Tijsen b4bff71008 Add copy 2026-02-25 12:01:30 +01:00
NH Gooi a2d561db87 Merge remote-tracking branch 'origin/dev' into dev 2026-02-25 11:35:37 +01:00
NH Gooi d30bfc5a53 Exclude unnecessary large dir from docker build context 2026-02-25 11:34:20 +01:00
JoritWebsight 8fab0d57a7 Merge pull request 'new-contact-page-form' (#19) from new-contact-page-form into dev
Reviewed-on: #19
2026-02-25 09:47:44 +01:00
Jorit Tijsen ae7ed5a217 Update docker php container 2026-02-25 09:44:37 +01:00
JoritWebsight d492b36fec Merge pull request 'New contact form with friendlycaptcha' (#18) from new-contact-page-form into dev
Reviewed-on: #18
2026-02-24 14:07:05 +01:00
Jorit Tijsen 3b4030113b New contact form with friendlycaptcha 2026-02-24 14:04:04 +01:00
8476 changed files with 12633 additions and 886538 deletions

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
.git
vendor
node_modules
storage/logs
storage/framework/cache/*
storage/framework/sessions/*
storage/framework/views/*
storage/app/public
.env
+39
View File
@@ -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
+4
View File
@@ -37,3 +37,7 @@ DB_PASSWORD=dbpass
CACHE_DRIVER=file
QUEUE_DRIVER=sync
FRIENDLY_CAPTCHA_SITEKEY=
FRIENDLY_CAPTCHA_SECRET=
FRIENDLY_CAPTCHA_DEBUG=true
+56
View File
@@ -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 }}"
+19 -8
View File
@@ -1,12 +1,23 @@
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
/.idea
/.vagrant
.phpunit.cache
node_modules
app/public/build
app/public/hot
app/public/storage
app/storage/*.key
app/bootstrap
app/storage
bootstrap/cache
vendor
.env
.env.backup
.env.production
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
.env
.fleet
.idea
.vscode
update
Executable → Regular
+67 -32
View File
@@ -1,38 +1,73 @@
FROM php:8.1-apache
FROM php:8.3.36-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/*
# Install Node.js
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs
# Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN apt-get update && apt-get install -y \
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.
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
RUN pecl install ssh2 \
&& 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
# COPY . /var/www/html
RUN a2enmod rewrite
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
chown -R www-data:www-data storage/framework && \
chmod -R 775 storage
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
RUN php artisan cache:clear && \
php artisan config:clear && \
php artisan view:clear
WORKDIR /var/www/app
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
-38
View File
@@ -1,38 +0,0 @@
FROM php:8.1-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
Vendored Executable → Regular
View File
File mode changed.
+15
View File
@@ -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
```
Executable → Regular
+47 -28
View File
@@ -2,13 +2,15 @@
namespace App\Console;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
private $API_URL;
private $API_URL;
/**
* 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.
*
@@ -27,39 +45,40 @@ class Kernel extends ConsoleKernel
*/
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)
$schedule->call(function() {
Storage::disk('local')->put('laatste_nieuws.json', file_get_contents($this->API_URL . 'nieuws/overzicht?pagina=1&aantal=3'));
Storage::disk('local')->put('populair_nieuws.json', file_get_contents($this->API_URL . 'nieuws/populair'));
})->everyMinute();
// Update latest news (3 items)
$schedule->call(function () {
$this->getFromApi('nieuws/overzicht?pagina=1&aantal=3', 'laatste_nieuws.json');
$this->getFromApi('nieuws/populair', 'populair_nieuws.json');
})->everyMinute();
// Update now / later
$schedule->call(function() {
Storage::disk('local')->put('nu_straks.json', file_get_contents($this->API_URL . 'programma/schema/nustraks'));
Storage::disk('local')->put('zojuist.json', file_get_contents($this->API_URL . 'programma/schema/recent'));
})->everyMinute();
// Update now / later
$schedule->call(function () {
$this->getFromApi('programma/schema/nustraks', 'nu_straks.json');
$this->getFromApi('programma/schema/recent', 'zojuist.json');
})->everyMinute();
// Update latest podcasts (6 items)
$schedule->call(function() {
Storage::disk('local')->put('laatste_podcasts.json', file_get_contents($this->API_URL . 'podcast/overzicht?pagina=1&aantal=6'));
})->everyMinute();
// Update latest podcasts (6 items)
$schedule->call(function () {
$this->getFromApi('podcast/overzicht?pagina=1&aantal=6', 'laatste_podcasts.json');
})->everyMinute();
// Update calendar items
$schedule->call(function() {
Storage::disk('local')->put('regioagenda.json', file_get_contents($this->API_URL . 'agenda/overzicht'));
})->everyMinute();
// Update calendar items
$schedule->call(function () {
$this->getFromApi('agenda/overzicht', 'regioagenda.json');
})->everyMinute();
// Update blogs
$schedule->call(function() {
Storage::disk('local')->put('blogs.json', file_get_contents($this->API_URL . 'blog/overzicht'));
})->everyMinute();
// Update blogs
$schedule->call(function () {
$this->getFromApi('blog/overzicht', 'blogs.json');
})->everyMinute();
// Update featured images
$schedule->call(function() {
Storage::disk('local')->put('beelden.json', file_get_contents($this->API_URL . 'beelden/overzicht'));
})->everyMinute();
// Update featured images
$schedule->call(function () {
$this->getFromApi('beelden/overzicht', 'beelden.json');
})->everyMinute();
}
/**
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
@@ -0,0 +1,84 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Storage;
use Illuminate\Validation\Rule;
use App\Mail\ContactFormSubmitted;
class ContactController extends Controller
{
public function show()
{
$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)
{
$rules = [
'name' => 'required|string|max:255',
'email' => 'required|email|max:255',
'message' => 'required|string',
'image' => 'nullable|image|max:10240',
'video' => 'nullable|mimetypes:video/avi,video/mpeg,video/quicktime,video/mp4|max:512000',
];
$debugCaptcha = env('FRIENDLY_CAPTCHA_DEBUG', false)
|| (app()->environment('local')
&& (!env('FRIENDLY_CAPTCHA_SITEKEY') || !env('FRIENDLY_CAPTCHA_SECRET')));
if ($debugCaptcha) {
$rules['frc-captcha-solution'] = 'nullable';
} else {
$rules['frc-captcha-solution'] = ['required', Rule::friendlycaptcha()];
}
$request->validate($rules);
$data = $request->only(['name', 'email', 'message']);
$attachments = [];
// Handle Image
if ($request->hasFile('image')) {
// Store temporarily to attach
$imagePath = $request->file('image')->store('contact_images');
$attachments['image'] = storage_path('app/' . $imagePath);
}
// Handle Video
if ($request->hasFile('video')) {
$videoPath = $request->file('video')->store('contact_videos', 'local');
$data['video_link'] = route('contact.video', ['filename' => basename($videoPath)]);
}
// Send Email
Mail::to('info@nhgooi.nl')->send(new ContactFormSubmitted($data, $attachments));
return redirect()->route('contact')->with('success', 'Bedankt voor uw bericht. We nemen zo snel mogelijk contact met u op.');
}
public function video(string $filename)
{
$path = 'contact_videos/' . basename($filename);
if (!Storage::disk('local')->exists($path)) {
abort(404);
}
$fullPath = Storage::disk('local')->path($path);
return response()->file($fullPath);
}
}
+71 -37
View File
@@ -7,6 +7,8 @@ use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
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\Storage;
use Illuminate\Support\Facades\View;
@@ -16,6 +18,8 @@ class Controller extends BaseController
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $API_URL;
protected $API_HOST;
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('imgBase', env('IMAGE_BASE_URL', '/'));
$this->API_HOST = env('API_HOST', $this->API_URL);
//View::share('onAir', file_get_contents(url('onair')));
View::composer('widgets.laatstenieuws', function ($view) {
@@ -92,7 +97,12 @@ class Controller extends BaseController
);
});
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));
@@ -104,49 +114,71 @@ class Controller extends BaseController
return;
}
app('db')->insert(
'INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
[
'type' => $type,
'id' => $id,
'ip' => $request->server('REMOTE_ADDR'),
'session' => md5(Session::getId()),
'referer' => $request->server('HTTP_REFERRER')
]
);
// app('db')->insert(
// 'INSERT INTO `pagestats`(`type`, `item_id`, `visitor_ip`, `session`, `referer`) VALUES(:type, :id, :ip, :session, :referer)',
// [
// 'type' => $type,
// 'id' => $id,
// 'ip' => $request->server('REMOTE_ADDR'),
// 'session' => md5(Session::getId()),
// 'referer' => $request->server('HTTP_REFERRER')
// ]
// );
}
protected function API($url)
{
$arrContextOptions = [
'ssl' => [
"verify_peer" => false,
"verify_peer_name" => false,
],
'http' => [
'method' => 'GET',
'header' => 'X-Api-Key: ' . sha1(request()->server('REMOTE_ADDR')) . "\r\n"
. 'X-User-Agent: ' . request()->server('HTTP_USER_AGENT') . "\r\n"
]
];
//\dump($http_response_header);
$result = @file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions));
return $result ? json_decode($result) : null;
try {
$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')
])
->get($this->API_URL . $url);
if ($response->successful()) {
$body = $response->body();
return $body ? json_decode($body) : 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)
{
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);
return substr($headers[0], 9, 3);
try {
$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)
{
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()
{
$populair = [];
$apiResult = $this->API('nieuws/populair?aantal=5');
$apiResult = (object) $this->API('nieuws/populair?aantal=5');
foreach ($apiResult->news as $_newsItem) {
$populair[] = new \Model\NewsItem($_newsItem);
}
$newsItems = [];
$apiResult = $this->API('nieuws/overzicht?aantal=5');
$apiResult = (object) $this->API('nieuws/overzicht?aantal=5');
foreach ($apiResult->news as $_newsItem) {
$newsItems[] = new \Model\NewsItem($_newsItem);
}
@@ -189,13 +221,15 @@ class Controller extends BaseController
return view($slug);
}
$page = $this->API('statisch/' . $slug);
if ($page == null) {
$page = (object) $this->API('statisch/' . $slug);
if ($page == null || !isset($page->title)) {
return abort(404);
}
$page->published = Controller::JsonToDateTime($page->published);
if ($page->edited) {
if(isset($page->published)) {
$page->published = Controller::JsonToDateTime($page->published);
}
if (isset($page->edited) && $page->edited) {
$page->edited = Controller::JsonToDateTime($page->edited);
}
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class ContactFormSubmitted extends Mailable
{
use Queueable, SerializesModels;
public $data;
public $attachments_files;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($data, $attachments_files = [])
{
$this->data = $data;
$this->attachments_files = $attachments_files;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$email = $this->view('emails.contact_submitted')
->subject('Nieuw contactformulier bericht van NH Gooi')
->replyTo($this->data['email'], $this->data['name']);
if (isset($this->attachments_files['image'])) {
$email->attach($this->attachments_files['image']);
}
return $email;
}
}
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
+6
View File
@@ -3,6 +3,8 @@
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Validation\Rule;
use Ossycodes\FriendlyCaptcha\Rules\FriendlyCaptcha as FriendlyCaptchaRule;
class AppServiceProvider extends ServiceProvider
{
@@ -14,6 +16,10 @@ class AppServiceProvider extends ServiceProvider
public function boot()
{
\Illuminate\Support\Facades\URL::forceScheme('https');
Rule::macro('friendlycaptcha', function () {
return app(FriendlyCaptchaRule::class);
});
}
/**
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
-2
View File
@@ -1,2 +0,0 @@
*
!.gitignore
-67
View File
@@ -1,67 +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',
),
),
'spatie/laravel-ignition' =>
array (
'providers' =>
array (
0 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
),
'aliases' =>
array (
'Flare' => 'Spatie\\LaravelIgnition\\Facades\\Flare',
),
),
);
-251
View File
@@ -1,251 +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 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
30 => 'Collective\\Html\\HtmlServiceProvider',
31 => 'Laravel\\Tinker\\TinkerServiceProvider',
32 => 'App\\Providers\\AppServiceProvider',
33 => 'App\\Providers\\AuthServiceProvider',
34 => 'App\\Providers\\EventServiceProvider',
35 => '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 => 'Spatie\\LaravelIgnition\\IgnitionServiceProvider',
15 => 'App\\Providers\\AppServiceProvider',
16 => 'App\\Providers\\AuthServiceProvider',
17 => 'App\\Providers\\EventServiceProvider',
18 => '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 (
),
),
);
Executable → Regular
+2 -1
View File
@@ -10,7 +10,8 @@
"laravel/framework": "^9.19",
"laravel/sanctum": "^3.0",
"laravel/tinker": "^2.7",
"laravelcollective/html": "^6.3"
"laravelcollective/html": "^6.3",
"ossycodes/friendlycaptcha": "^3.0"
},
"require-dev": {
"fakerphp/faker": "^1.9.1",
Generated Executable → Regular
+101 -31
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "f70c81adf2990f185a8632535bd08631",
"content-hash": "f9a3eebc09010b2b187541a3e59a0eff",
"packages": [
{
"name": "brick/math",
@@ -1934,34 +1934,37 @@
},
{
"name": "nette/schema",
"version": "v1.2.3",
"version": "v1.3.3",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
"reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
"reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
"reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
"url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004",
"reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004",
"shasum": ""
},
"require": {
"nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
"php": ">=7.1 <8.3"
"nette/utils": "^4.0",
"php": "8.1 - 8.5"
},
"require-dev": {
"nette/tester": "^2.3 || ^2.4",
"phpstan/phpstan-nette": "^1.0",
"tracy/tracy": "^2.7"
"nette/tester": "^2.5.2",
"phpstan/phpstan-nette": "^2.0@stable",
"tracy/tracy": "^2.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2-dev"
"dev-master": "1.3-dev"
}
},
"autoload": {
"psr-4": {
"Nette\\": "src"
},
"classmap": [
"src/"
]
@@ -1990,34 +1993,36 @@
],
"support": {
"issues": "https://github.com/nette/schema/issues",
"source": "https://github.com/nette/schema/tree/v1.2.3"
"source": "https://github.com/nette/schema/tree/v1.3.3"
},
"time": "2022-10-13T01:24:26+00:00"
"time": "2025-10-30T22:57:59+00:00"
},
{
"name": "nette/utils",
"version": "v3.2.8",
"version": "v4.1.1",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
"reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368"
"reference": "c99059c0315591f1a0db7ad6002000288ab8dc72"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368",
"reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368",
"url": "https://api.github.com/repos/nette/utils/zipball/c99059c0315591f1a0db7ad6002000288ab8dc72",
"reference": "c99059c0315591f1a0db7ad6002000288ab8dc72",
"shasum": ""
},
"require": {
"php": ">=7.2 <8.3"
"php": "8.2 - 8.5"
},
"conflict": {
"nette/di": "<3.0.6"
"nette/finder": "<3",
"nette/schema": "<1.2.2"
},
"require-dev": {
"nette/tester": "~2.0",
"phpstan/phpstan": "^1.0",
"tracy/tracy": "^2.3"
"jetbrains/phpstorm-attributes": "^1.2",
"nette/tester": "^2.5",
"phpstan/phpstan-nette": "^2.0@stable",
"tracy/tracy": "^2.9"
},
"suggest": {
"ext-gd": "to use Image",
@@ -2025,16 +2030,18 @@
"ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
"ext-json": "to use Nette\\Utils\\Json",
"ext-mbstring": "to use Strings::lower() etc...",
"ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
"ext-xml": "to use Strings::length() etc. when mbstring is not available"
"ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
"dev-master": "4.1-dev"
}
},
"autoload": {
"psr-4": {
"Nette\\": "src"
},
"classmap": [
"src/"
]
@@ -2075,9 +2082,9 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
"source": "https://github.com/nette/utils/tree/v3.2.8"
"source": "https://github.com/nette/utils/tree/v4.1.1"
},
"time": "2022-09-12T23:36:20+00:00"
"time": "2025-12-22T12:14:32+00:00"
},
{
"name": "nikic/php-parser",
@@ -2221,6 +2228,69 @@
],
"time": "2022-12-20T19:00:15+00:00"
},
{
"name": "ossycodes/friendlycaptcha",
"version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/ossycodes/friendlycaptcha.git",
"reference": "b18dfab44ee5fff7d75412232eb6f834864efde6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ossycodes/friendlycaptcha/zipball/b18dfab44ee5fff7d75412232eb6f834864efde6",
"reference": "b18dfab44ee5fff7d75412232eb6f834864efde6",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^7.0",
"illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0",
"php": "^7.4|^8.0|^8.1|^8.2|^8.3"
},
"require-dev": {
"orchestra/testbench": "^6.0|^7.0|^8.0|^9.0",
"phpunit/phpunit": "^8.0 || ^9.5 || ^10.5 || ^11.0 || ^12.0"
},
"type": "library",
"extra": {
"laravel": {
"aliases": {
"FriendlyCaptcha": "Ossycodes\\FriendlyCaptcha\\Facades\\FriendlyCaptcha"
},
"providers": [
"Ossycodes\\FriendlyCaptcha\\FriendlyCaptchaServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Ossycodes\\FriendlyCaptcha\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "ossycodes",
"email": "osaigbovoemmanuel1@gmail.com",
"role": "Developer"
}
],
"description": "A simple package to help integrate FriendlyCaptcha in your Laravel applications.",
"homepage": "https://github.com/ossycodes/friendlycaptcha",
"keywords": [
"captcha",
"friendlycaptcha",
"laravel"
],
"support": {
"issues": "https://github.com/ossycodes/friendlycaptcha/issues",
"source": "https://github.com/ossycodes/friendlycaptcha/tree/v3.0.0"
},
"time": "2025-05-08T13:30:49+00:00"
},
{
"name": "phpoption/phpoption",
"version": "1.9.0",
@@ -7931,12 +8001,12 @@
],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": [],
"stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^8.0.2"
"php": "^8.0"
},
"platform-dev": [],
"plugin-api-version": "2.3.0"
"platform-dev": {},
"plugin-api-version": "2.6.0"
}
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
+105
View File
@@ -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'),
],
],
];
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Executable → Regular
+5
View File
@@ -22,3 +22,8 @@ services:
MYSQL_DATABASE: forge
MYSQL_USER: forge
MYSQL_PASSWORD: secret
mailpit:
image: axllent/mailpit:latest
ports:
- "8025:8025"
- "1025:1025"
Executable → Regular
View File
File mode changed.
+41
View File
@@ -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
Executable → Regular
-25
View File
@@ -19,28 +19,3 @@ ServerTokens Prod
CustomLog /var/log/apache2/vhost-access.log combined
</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>
Executable → Regular
+4 -4
View File
@@ -23,7 +23,7 @@ ServerTokens Prod
<VirtualHost *:443>
ServerName localhost
ServerAdmin support@websight.nl
DocumentRoot /var/www/html
DocumentRoot /var/www/html/public
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
@@ -32,15 +32,15 @@ ServerTokens Prod
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
<Directory /var/www/html/>
<Directory /var/www/html/public>
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
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
</IfModule>
Executable → Regular
View File
File mode changed.
Executable → Regular
+4
View File
@@ -37,3 +37,7 @@ DB_PASSWORD=dbpass
CACHE_DRIVER=file
QUEUE_DRIVER=sync
FRIENDLY_CAPTCHA_SITEKEY=
FRIENDLY_CAPTCHA_SECRET=
FRIENDLY_CAPTCHA_DEBUG=true
+14
View File
@@ -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
Executable → Regular
View File
File mode changed.
Generated Executable → Regular
+56 -1
View File
@@ -1,9 +1,18 @@
{
"name": "nhgooi.nl",
"name": "workspace",
"lockfileVersion": 3,
"requires": true,
"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": {
"grunt": "^1.6.1",
"grunt-contrib-concat": "^2.1.0",
@@ -18,6 +27,12 @@
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"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": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -241,6 +256,16 @@
"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": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -1075,6 +1100,21 @@
"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": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
@@ -1207,6 +1247,15 @@
"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": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -1740,6 +1789,12 @@
"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": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
Executable → Regular
+12
View File
@@ -1,12 +1,24 @@
{
"private": true,
"type": "module",
"scripts": {
"dev": "grunt watch",
"build": "grunt uglify concat",
"postinstall": "node scripts/setup-vendor.js || true",
"sass": "sass 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-watch": "sass --watch resources/assets/sass/style.scss:public/css/style.min.css --style compressed",
"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": {
"grunt": "^1.6.1",
"grunt-contrib-concat": "^2.1.0",
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File
File mode changed.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 183 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 606 B

After

Width:  |  Height:  |  Size: 606 B

Executable → Regular
View File
File mode changed.

Before

Width:  |  Height:  |  Size: 417 B

After

Width:  |  Height:  |  Size: 417 B

Vendored Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Vendored Executable → Regular
View File
File mode changed.
View File
File mode changed.
Loaded 100 of 8476 files, more files were not shown because too many files have changed in this diff. Show more