Compare commits
15 Commits
shift-1618
...
bot/depend
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43abc6d1c6 | ||
|
|
d9fc6c95f3 | ||
|
|
a65f0eead6 | ||
| ca025ca2e8 | |||
| 74aef68edc | |||
| c0e595f88a | |||
| aab4bc0d46 | |||
| f2708e1325 | |||
|
|
2e2b70ab7c | ||
|
|
e42d54554a | ||
| 6cb24f1500 | |||
| f7cc086f37 | |||
| 8463da7842 | |||
|
|
322d547c92 | ||
| 30104ece71 |
55
.github/workflows/dependency-update.yml
vendored
Normal file
55
.github/workflows/dependency-update.yml
vendored
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
name: Dependency Update
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 20 * * 1" # Mondays 20:00 UTC
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: npm
|
||||||
|
|
||||||
|
- uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: "8.4"
|
||||||
|
tools: composer:v2
|
||||||
|
|
||||||
|
- name: Install current deps
|
||||||
|
run: |
|
||||||
|
npm ci
|
||||||
|
composer install --no-interaction --no-progress
|
||||||
|
|
||||||
|
- name: Update deps
|
||||||
|
run: |
|
||||||
|
npm update
|
||||||
|
composer update --no-interaction --no-progress
|
||||||
|
|
||||||
|
- name: Detect changes
|
||||||
|
id: changes
|
||||||
|
run: |
|
||||||
|
if git diff --quiet; then
|
||||||
|
echo "changed=false" >> "$GITHUB_OUTPUT"
|
||||||
|
else
|
||||||
|
echo "changed=true" >> "$GITHUB_OUTPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Create PR
|
||||||
|
if: steps.changes.outputs.changed == 'true'
|
||||||
|
uses: peter-evans/create-pull-request@v6
|
||||||
|
with:
|
||||||
|
commit-message: "Dependency update"
|
||||||
|
title: "Dependency update"
|
||||||
|
body: "Automated dependency update."
|
||||||
|
branch: "bot/dependency-update"
|
||||||
|
delete-branch: true
|
||||||
@@ -34,23 +34,23 @@ class SearchController extends Controller
|
|||||||
$workshops = $workshopQuery->orderBy('starts_at', 'desc')
|
$workshops = $workshopQuery->orderBy('starts_at', 'desc')
|
||||||
->paginate(6, ['*'], 'workshop');
|
->paginate(6, ['*'], 'workshop');
|
||||||
|
|
||||||
$postQuery = Post::query()->where('status', 'published');
|
// $postQuery = Post::query()->where('status', 'published');
|
||||||
$postQuery->where(function ($query) use ($search_words) {
|
// $postQuery->where(function ($query) use ($search_words) {
|
||||||
foreach ($search_words as $word) {
|
// foreach ($search_words as $word) {
|
||||||
$query->where(function ($subQuery) use ($word) {
|
// $query->where(function ($subQuery) use ($word) {
|
||||||
$subQuery->where('title', 'like', '%' . $word . '%')
|
// $subQuery->where('title', 'like', '%' . $word . '%')
|
||||||
->orWhere('content', 'like', '%' . $word . '%');
|
// ->orWhere('content', 'like', '%' . $word . '%');
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
//
|
||||||
$posts = $postQuery->orderBy('created_at', 'desc')
|
// $posts = $postQuery->orderBy('created_at', 'desc')
|
||||||
->paginate(6, ['*'], 'post')
|
// ->paginate(6, ['*'], 'post')
|
||||||
->onEachSide(1);
|
// ->onEachSide(1);
|
||||||
|
|
||||||
return view('search', [
|
return view('search', [
|
||||||
'workshops' => $workshops,
|
'workshops' => $workshops,
|
||||||
'posts' => $posts,
|
// 'posts' => $posts,
|
||||||
'search' => $search,
|
'search' => $search,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"chillerlan/php-qrcode": "^5.0",
|
"chillerlan/php-qrcode": "^5.0",
|
||||||
"gehrisandro/tailwind-merge-laravel": "^1.2",
|
"gehrisandro/tailwind-merge-laravel": "^1.2",
|
||||||
"intervention/image": "^3.5",
|
"intervention/image": "^3.5",
|
||||||
"laravel/framework": "^11.0",
|
"laravel/framework": "^12.0",
|
||||||
"laravel/tinker": "^2.9",
|
"laravel/tinker": "^2.9",
|
||||||
"livewire/livewire": "^3.4",
|
"livewire/livewire": "^3.4",
|
||||||
"php-ffmpeg/php-ffmpeg": "^1.2",
|
"php-ffmpeg/php-ffmpeg": "^1.2",
|
||||||
@@ -22,7 +22,6 @@
|
|||||||
"laravel/pint": "^1.13",
|
"laravel/pint": "^1.13",
|
||||||
"laravel/sail": "^1.26",
|
"laravel/sail": "^1.26",
|
||||||
"mockery/mockery": "^1.6",
|
"mockery/mockery": "^1.6",
|
||||||
"nunomaduro/collision": "^8.0",
|
|
||||||
"phpunit/phpunit": "^10.5",
|
"phpunit/phpunit": "^10.5",
|
||||||
"spatie/laravel-ignition": "^2.4"
|
"spatie/laravel-ignition": "^2.4"
|
||||||
},
|
},
|
||||||
|
|||||||
1361
composer.lock
generated
1361
composer.lock
generated
File diff suppressed because it is too large
Load Diff
2489
package-lock.json
generated
2489
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -6,12 +6,12 @@
|
|||||||
"build": "vite build"
|
"build": "vite build"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@tailwindcss/vite": "^4.1.17",
|
||||||
"autoprefixer": "^10.4.19",
|
"autoprefixer": "^10.4.19",
|
||||||
"axios": "^1.6.4",
|
"axios": "^1.6.4",
|
||||||
"laravel-vite-plugin": "^1.0",
|
"laravel-vite-plugin": "^1.0",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
"tailwindcss": "^3.4.3",
|
"vite": "^6.4"
|
||||||
"vite": "^5.0"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tiptap/core": "^2.3.0",
|
"@tiptap/core": "^2.3.0",
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
"@tiptap/extension-typography": "^2.3.0",
|
"@tiptap/extension-typography": "^2.3.0",
|
||||||
"@tiptap/extension-underline": "^2.3.0",
|
"@tiptap/extension-underline": "^2.3.0",
|
||||||
"@tiptap/pm": "^2.3.0",
|
"@tiptap/pm": "^2.3.0",
|
||||||
"@tiptap/starter-kit": "^2.3.0"
|
"@tiptap/starter-kit": "^2.3.0",
|
||||||
|
"tailwindcss": "^4.1.17"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
export default {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,24 @@
|
|||||||
@tailwind base;
|
@import "tailwindcss";
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
@source "../**/*.{blade.php,js,php,vue}";
|
||||||
|
|
||||||
|
@theme {
|
||||||
|
/* Color tokens */
|
||||||
|
--color-primary-color: #0284C7;
|
||||||
|
--color-primary-color-dark: #0370A1;
|
||||||
|
--color-primary-color-light: #0EA5E9;
|
||||||
|
|
||||||
|
--color-danger-color: #b91c1c;
|
||||||
|
--color-danger-color-dark: #991b1b;
|
||||||
|
--color-danger-color-light: #dc2626;
|
||||||
|
|
||||||
|
--color-success-color: #16a34a;
|
||||||
|
--color-success-color-dark: #22c55e;
|
||||||
|
--color-success-color-light: #4ade80;
|
||||||
|
|
||||||
|
/* Box shadows */
|
||||||
|
--shadow-deep: 0 10px 15px rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
@apply bg-gray-100;
|
@apply bg-gray-100;
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
<li><a href="https://discord.gg/yNzk4x7mpD" class="text-sm hover:text-primary-color">Discord</a></li>
|
<li><a href="https://discord.gg/yNzk4x7mpD" class="text-sm hover:text-primary-color">Discord</a></li>
|
||||||
<li><a href="https://www.facebook.com/stemmechanics" class="text-sm hover:text-primary-color">Facebook</a></li>
|
<li><a href="https://www.facebook.com/stemmechanics" class="text-sm hover:text-primary-color">Facebook</a></li>
|
||||||
<li><a href="https://www.stemcraft.com.au/" class="text-sm hover:text-primary-color">STEMCraft (Minecraft)</a></li>
|
<li><a href="https://www.stemcraft.com.au/" class="text-sm hover:text-primary-color">STEMCraft (Minecraft)</a></li>
|
||||||
|
<li><a href="https://jenkins.stemmechanics.com.au/" class="text-sm hover:text-primary-color">Jenkins</a></li>
|
||||||
<li><a href="https://youtube.com/@STEMMechanics" class="text-sm hover:text-primary-color">YouTube</a></li>
|
<li><a href="https://youtube.com/@STEMMechanics" class="text-sm hover:text-primary-color">YouTube</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="sm:w-1/3 flex flex-col gap-0.5 text-center sm:text-left">
|
<ul class="sm:w-1/3 flex flex-col gap-0.5 text-center sm:text-left">
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div x-show="pageMenuOpen" @click.away="pageMenuOpen=false" x-cloak class="fixed left-0 top-0 h-full w-full z-20" role="menu" aria-labelledby="page-menu-button" tabindex="-1">
|
<div x-show="pageMenuOpen" @click.away="pageMenuOpen=false" x-cloak class="fixed left-0 top-0 h-full w-full z-20" role="menu" aria-labelledby="page-menu-button" tabindex="-1">
|
||||||
<div x-show="pageMenuOpen" @click="pageMenuOpen=false" class="absolute inset-0 bg-black bg-opacity-40 backdrop-blur-sm"
|
<div x-show="pageMenuOpen" @click="pageMenuOpen=false" class="absolute inset-0 bg-black/40 backdrop-blur-sm"
|
||||||
x-transition:enter="transition ease-out duration-300"
|
x-transition:enter="transition ease-out duration-300"
|
||||||
x-transition:enter-start="opacity-0"
|
x-transition:enter-start="opacity-0"
|
||||||
x-transition:enter-end="opacity-100"
|
x-transition:enter-end="opacity-100"
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
@click.away="userMenuOpen=false"
|
@click.away="userMenuOpen=false"
|
||||||
x-cloak
|
x-cloak
|
||||||
>
|
>
|
||||||
<div x-show="userMenuOpen" @click="userMenuOpen=false" class="fixed left-0 w-screen z-20 h-screen bg-black bg-opacity-40 backdrop-blur-sm"
|
<div x-show="userMenuOpen" @click="userMenuOpen=false" class="fixed left-0 w-screen z-20 h-screen bg-black/40 backdrop-blur-sm"
|
||||||
x-transition:enter="transition ease-out duration-300"
|
x-transition:enter="transition ease-out duration-300"
|
||||||
x-transition:enter-start="opacity-0"
|
x-transition:enter-start="opacity-0"
|
||||||
x-transition:enter-end="opacity-100"
|
x-transition:enter-end="opacity-100"
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
x-transition:leave-end="opacity-0"></div>
|
x-transition:leave-end="opacity-0"></div>
|
||||||
<div
|
<div
|
||||||
x-show="userMenuOpen"
|
x-show="userMenuOpen"
|
||||||
class="absolute w-full right-0 sm:right-5 sm:top-12 z-50 sm:mt-2 sm:w-64 origin-top-right sm:rounded-md bg-white py-3 px-2 shadow-lg border-t sm:ring-1 ring-black ring-opacity-25 focus:outline-none">
|
class="absolute w-full right-0 sm:right-5 sm:top-12 z-50 sm:mt-2 sm:w-64 origin-top-right sm:rounded-md bg-white py-3 px-2 shadow-lg border-t border-gray-200 sm:ring-1 ring-black/25 focus:outline-none">
|
||||||
@if(auth()->guest())
|
@if(auth()->guest())
|
||||||
<a href="{{ route('register') }}" class="block px-4 py-2 text-sm text-gray-700 rounded transition hover:bg-sky-600 hover:text-white" role="menuitem" tabindex="-1"><i class="fa-solid fa-pen-to-square w-4 mr-2"></i>Register</a>
|
<a href="{{ route('register') }}" class="block px-4 py-2 text-sm text-gray-700 rounded transition hover:bg-sky-600 hover:text-white" role="menuitem" tabindex="-1"><i class="fa-solid fa-pen-to-square w-4 mr-2"></i>Register</a>
|
||||||
<a href="{{ route('login') }}" class="block px-4 py-2 text-sm text-gray-700 rounded transition hover:bg-sky-600 hover:text-white" role="menuitem" tabindex="-1"><i class="fa-solid fa-right-to-bracket w-4 mr-2"></i>Log in</a>
|
<a href="{{ route('login') }}" class="block px-4 py-2 text-sm text-gray-700 rounded transition hover:bg-sky-600 hover:text-white" role="menuitem" tabindex="-1"><i class="fa-solid fa-right-to-bracket w-4 mr-2"></i>Log in</a>
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
})">
|
})">
|
||||||
<div class="absolute inset-0 backdrop-blur-sm bg-opacity-40 bg-black"></div>
|
<div class="absolute inset-0 backdrop-blur-sm bg-black/40"></div>
|
||||||
<div class="relative w-full mx-8 max-w-2xl bg-gray-50 p-2 rounded-lg shadow-lg" x-on:click.stop>
|
<div class="relative w-full mx-8 max-w-2xl bg-gray-50 p-2 rounded-lg shadow-lg" x-on:click.stop>
|
||||||
<form action="{{ route('search.index') }}" method="GET">
|
<form action="{{ route('search.index') }}" method="GET">
|
||||||
<x-ui.search type="text" name="q" label="Search..." />
|
<x-ui.search type="text" name="q" label="Search..." />
|
||||||
|
|||||||
@@ -10,12 +10,12 @@
|
|||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
<a href="{{ route('workshop.show', $workshop) }}" class="flex flex-col bg-white border rounded-lg overflow-hidden hover:shadow-lg hover:scale-[101%] transition-all relative {{ $attributes->get('class') }}">
|
<a href="{{ route('workshop.show', $workshop) }}" class="flex flex-col bg-white border border-gray-200 rounded-lg overflow-hidden hover:shadow-lg hover:scale-[101%] transition-all relative {{ $attributes->get('class') }}">
|
||||||
<div class="shadow border rounded px-3 py-2 absolute top-2 left-2 flex flex-col justify-center items-center bg-white">
|
<div class="shadow border border-gray-200 rounded px-3 py-2 absolute top-2 left-2 flex flex-col justify-center items-center bg-white">
|
||||||
<div class="text-gray-600 font-bold leading-none">{{ $workshop->starts_at->format('j') }}</div>
|
<div class="text-gray-600 font-bold leading-none">{{ $workshop->starts_at->format('j') }}</div>
|
||||||
<div class="text-gray-600 text-xs uppercase">{{ $workshop->starts_at->format('M') }}</div>
|
<div class="text-gray-600 text-xs uppercase">{{ $workshop->starts_at->format('M') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="border border-white border-opacity-50 absolute flex items-center justify-center top-5 -right-9 bg-gray-500 w-36 text-sm text-white font-bold uppercase py-1 rotate-45 h-8 sm-banner-{{ strtolower($statusClass) }}">{{ $statusTitle }}</div>
|
<div class="border border-white/50 absolute flex items-center justify-center top-5 -right-9 bg-gray-500 w-36 text-sm text-white font-bold uppercase py-1 rotate-45 h-8 sm-banner-{{ strtolower($statusClass) }}">{{ $statusTitle }}</div>
|
||||||
<img src="{{ $workshop->hero?->url }}?md" alt="{{ $workshop->title }}" class="w-full h-64 object-cover object-center">
|
<img src="{{ $workshop->hero?->url }}?md" alt="{{ $workshop->title }}" class="w-full h-64 object-cover object-center">
|
||||||
<div class="flex-grow p-4 flex flex-col">
|
<div class="flex-grow p-4 flex flex-col">
|
||||||
<h2 class="flex-grow {{ strlen($workshop->title) > 25 ? 'text-lg' : 'text-xl' }} font-bold mb-2">{{ $workshop->title }}</h2>
|
<h2 class="flex-grow {{ strlen($workshop->title) > 25 ? 'text-lg' : 'text-xl' }} font-bold mb-2">{{ $workshop->title }}</h2>
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
<x-layout>
|
<x-layout>
|
||||||
<x-mast title="Search" description='Results for "{{ $search }}"' />
|
<x-mast title="Search" description='Results for "{{ $search }}"' />
|
||||||
<x-container>
|
<x-container>
|
||||||
<section class="bg-gray-100">
|
{{-- <section class="bg-gray-100">--}}
|
||||||
<h2 class="text-2xl font-bold my-6">Posts</h2>
|
{{-- <h2 class="text-2xl font-bold my-6">Posts</h2>--}}
|
||||||
@if($posts->isEmpty())
|
{{-- @if($posts->isEmpty())--}}
|
||||||
<x-container class="mt-8">
|
{{-- <x-container class="mt-8">--}}
|
||||||
<x-none-found item="posts" search="{{ request()->get('search') }}" />
|
{{-- <x-none-found item="posts" search="{{ request()->get('search') }}" />--}}
|
||||||
</x-container>
|
{{-- </x-container>--}}
|
||||||
@else
|
{{-- @else--}}
|
||||||
<x-container class="mt-4" inner-class="grid md:grid-cols-2 lg:grid-cols-3 gap-8 w-full">
|
{{-- <x-container class="mt-4" inner-class="grid md:grid-cols-2 lg:grid-cols-3 gap-8 w-full">--}}
|
||||||
@foreach ($posts as $post)
|
{{-- @foreach ($posts as $post)--}}
|
||||||
<x-panel-post :post="$post" />
|
{{-- <x-panel-post :post="$post" />--}}
|
||||||
@endforeach
|
{{-- @endforeach--}}
|
||||||
</x-container>
|
{{-- </x-container>--}}
|
||||||
<x-container>
|
{{-- <x-container>--}}
|
||||||
{{ $posts->appends(request()->except('post'))->links('', ['pageName' => 'post']) }}
|
{{-- {{ $posts->appends(request()->except('post'))->links('', ['pageName' => 'post']) }}--}}
|
||||||
</x-container>
|
{{-- </x-container>--}}
|
||||||
@endif
|
{{-- @endif--}}
|
||||||
</section>
|
{{-- </section>--}}
|
||||||
|
|
||||||
<section class="bg-gray-100">
|
<section class="bg-gray-100">
|
||||||
<h2 class="text-2xl font-bold my-6">Workshops</h2>
|
<h2 class="text-2xl font-bold my-6">Workshops</h2>
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
export default {
|
|
||||||
content: [
|
|
||||||
"./resources/**/*.blade.php",
|
|
||||||
"./resources/**/*.js",
|
|
||||||
'./vendor/**/*.blade.php',
|
|
||||||
],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
boxShadow: {
|
|
||||||
'deep': '0 10px 15px rgba(0, 0, 0, 0.5)',
|
|
||||||
},
|
|
||||||
colors: {
|
|
||||||
'primary-color': '#0284C7', // sky-600
|
|
||||||
'primary-color-dark': '#0370A1', // sky-500
|
|
||||||
'primary-color-light': '#0EA5E9', // sky-400
|
|
||||||
|
|
||||||
'danger-color': '#b91c1c', // red-600
|
|
||||||
'danger-color-dark': '#991b1b', // red-500
|
|
||||||
'danger-color-light': '#dc2626', // red-400
|
|
||||||
|
|
||||||
'success-color': '#16a34a', // green-600
|
|
||||||
'success-color-dark': '#22c55e', // green-500
|
|
||||||
'success-color-light': '#4ade80', // green-400
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [],
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vite';
|
||||||
import laravel from 'laravel-vite-plugin';
|
import laravel from 'laravel-vite-plugin';
|
||||||
|
import tailwindcss from '@tailwindcss/vite'
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
@@ -7,5 +8,6 @@ export default defineConfig({
|
|||||||
input: ['resources/css/app.css', 'resources/js/app.js'],
|
input: ['resources/css/app.css', 'resources/js/app.js'],
|
||||||
refresh: true,
|
refresh: true,
|
||||||
}),
|
}),
|
||||||
|
tailwindcss(),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user