39 Commits

Author SHA1 Message Date
c9c7c38088 Merge pull request 'Added sticker structure detail resource pages' (#21) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #21
2025-12-22 11:32:08 +00:00
dhanabalan
31bc4a7fd0 Added sticker structure detail resource pages
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 11s
Gemini PR Review / Gemini PR Review (pull_request) Successful in 18s
Laravel Larastan / larastan (pull_request) Failing after 2m16s
Laravel Pint / pint (pull_request) Failing after 2m14s
2025-12-22 17:01:57 +05:30
90cfe9ef0d Merge pull request 'Added sticker structure detail model file' (#20) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #20
2025-12-22 11:30:56 +00:00
dhanabalan
2b52a6e542 Added sticker structure detail model file
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Gemini PR Review / Gemini PR Review (pull_request) Successful in 19s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 11s
Laravel Larastan / larastan (pull_request) Failing after 2m21s
Laravel Pint / pint (pull_request) Failing after 2m19s
2025-12-22 17:00:46 +05:30
aa806f2fe3 Merge pull request 'Added sticker structure detail migration file' (#19) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #19
2025-12-22 11:30:11 +00:00
dhanabalan
15374002f1 Added sticker structure detail migration file
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 11s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 20s
Gemini PR Review / Gemini PR Review (pull_request) Successful in 30s
Laravel Larastan / larastan (pull_request) Failing after 2m16s
Laravel Pint / pint (pull_request) Failing after 2m23s
2025-12-22 16:59:53 +05:30
0eb6f76ca6 Merge pull request 'Enhance Gemini review step to handle errors and provide feedback on review status' (#18) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Reviewed-on: #18
2025-12-18 06:34:16 +00:00
dhanabalan
0ef8ba73cc Enhance Gemini review step to handle errors and provide feedback on review status
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 11s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 11s
Laravel Pint / pint (pull_request) Has been cancelled
Laravel Larastan / larastan (pull_request) Failing after 2m23s
Gemini PR Review / Gemini PR Review (pull_request) Successful in 17s
2025-12-18 12:04:03 +05:30
73366ccd70 Merge pull request 'Update Gemini review step to use gemini-pro model for code analysis' (#17) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #17
2025-12-18 06:31:07 +00:00
dhanabalan
8446282856 Update Gemini review step to use gemini-pro model for code analysis
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 11s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 17s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Larastan / larastan (pull_request) Has been cancelled
Laravel Pint / pint (pull_request) Has been cancelled
2025-12-18 12:00:51 +05:30
acbecedce9 Merge pull request 'Update Gemini review step to use gemini-1.5-flash model for code analysis' (#16) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #16
2025-12-18 06:28:15 +00:00
dhanabalan
cac8cdd7ce Update Gemini review step to use gemini-1.5-flash model for code analysis
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 12s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Larastan / larastan (pull_request) Failing after 2m23s
Laravel Pint / pint (pull_request) Failing after 2m22s
2025-12-18 11:58:03 +05:30
614d89932b Merge pull request 'Update Gemini review step to use GPT-5-mini model for code analysis' (#15) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #15
2025-12-18 06:26:56 +00:00
dhanabalan
2a7db20796 Update Gemini review step to use GPT-5-mini model for code analysis
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 16s
Laravel Larastan / larastan (pull_request) Failing after 2m36s
Laravel Pint / pint (pull_request) Failing after 2m33s
2025-12-18 11:56:41 +05:30
c839c6fdbc Merge pull request 'Remove unnecessary blank line in Gemini PR Review workflow' (#14) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 11s
Reviewed-on: #14
2025-12-18 05:16:54 +00:00
dhanabalan
08aaccf1b8 Remove unnecessary blank line in Gemini PR Review workflow
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 11s
Laravel Pint / pint (pull_request) Failing after 2m9s
Laravel Larastan / larastan (pull_request) Failing after 2m19s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
2025-12-18 10:46:34 +05:30
d9445a9d4b Merge pull request 'Refactor Gemini PR Review workflow' (#13) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Reviewed-on: #13
2025-12-18 04:48:44 +00:00
dhanabalan
6f77f8ecbc Refactor Gemini PR Review workflow
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 13s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 21s
Laravel Larastan / larastan (pull_request) Failing after 2m26s
Laravel Pint / pint (pull_request) Failing after 4m8s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 19s
2025-12-18 10:18:14 +05:30
50476c8a2c Merge pull request 'Added nav group name in ocr validation resource page' (#12) from ranjith-dev into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Reviewed-on: #12
2025-12-17 06:22:14 +00:00
dhanabalan
7f55378541 Added nav group name in ocr validation resource page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 11s
Gemini PR Review / review (pull_request) Failing after 22s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Larastan / larastan (pull_request) Failing after 2m46s
Laravel Pint / pint (pull_request) Failing after 2m44s
2025-12-17 11:52:01 +05:30
c57cfe71ca Merge pull request 'Added nav group for web capture page' (#11) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #11
2025-12-17 06:21:40 +00:00
dhanabalan
9040f094c1 Added nav group for web capture page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Gemini PR Review / review (pull_request) Failing after 22s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Larastan / larastan (pull_request) Failing after 2m22s
Laravel Pint / pint (pull_request) Failing after 2m39s
2025-12-17 11:51:29 +05:30
96c08c34c1 Merge pull request 'Added nav group in reject reason resource page' (#10) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #10
2025-12-17 06:20:01 +00:00
dhanabalan
ec98c9b2ce Added nav group in reject reason resource page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Gemini PR Review / review (pull_request) Failing after 25s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 9s
Laravel Pint / pint (pull_request) Failing after 2m30s
Laravel Larastan / larastan (pull_request) Failing after 2m57s
2025-12-17 11:49:50 +05:30
19cf7c8edd Merge pull request 'Added nav group for production reject reason resource page' (#9) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #9
2025-12-17 06:19:03 +00:00
dhanabalan
acf326c6ca Added nav group for production reject reason resource page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Gemini PR Review / review (pull_request) Failing after 21s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Larastan / larastan (pull_request) Failing after 2m20s
Laravel Pint / pint (pull_request) Failing after 2m40s
2025-12-17 11:48:52 +05:30
66086dd2d7 Merge pull request 'Added nav group in product characteristics resource page' (#8) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #8
2025-12-17 06:16:38 +00:00
dhanabalan
e082d5bb49 Added nav group in product characteristics resource page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 11s
Gemini PR Review / review (pull_request) Failing after 24s
Laravel Larastan / larastan (pull_request) Failing after 2m34s
Laravel Pint / pint (pull_request) Failing after 2m37s
2025-12-17 11:46:28 +05:30
5da724c9a4 Merge pull request 'Added nav group in gr master resource page' (#7) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #7
2025-12-17 06:15:52 +00:00
dhanabalan
e6276378f8 Added nav group in gr master resource page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Gemini PR Review / review (pull_request) Failing after 28s
Laravel Larastan / larastan (pull_request) Failing after 2m35s
Laravel Pint / pint (pull_request) Failing after 2m21s
2025-12-17 11:45:41 +05:30
6b723c0929 Merge pull request 'Added navigation sort for sticker mapping resource page' (#6) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #6
2025-12-17 06:13:44 +00:00
dhanabalan
71e8c29801 Added navigation sort for sticker mapping resource page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Gemini PR Review / review (pull_request) Failing after 25s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Pint / pint (pull_request) Failing after 2m28s
Laravel Larastan / larastan (pull_request) Failing after 2m35s
2025-12-17 11:43:32 +05:30
8e20d0732d Merge pull request 'Added nav group for sticker printing resource page' (#5) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #5
2025-12-17 06:11:56 +00:00
dhanabalan
2524ad4620 Added nav group for sticker printing resource page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Gemini PR Review / review (pull_request) Failing after 22s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Larastan / larastan (pull_request) Failing after 9m22s
Laravel Pint / pint (pull_request) Failing after 8m54s
2025-12-17 11:41:43 +05:30
1d8fb1c9aa Merge pull request 'Added nav group for sticker master mapping resource' (#4) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #4
2025-12-17 06:11:07 +00:00
dhanabalan
a85faafe90 Added nav group for sticker master mapping resource
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 9s
Gemini PR Review / review (pull_request) Failing after 23s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Laravel Larastan / larastan (pull_request) Failing after 2m20s
Laravel Pint / pint (pull_request) Failing after 3m17s
2025-12-17 11:40:53 +05:30
33bbce47ba Merge pull request 'Added navigation group for class characteristics' (#3) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Reviewed-on: #3
2025-12-17 06:08:01 +00:00
dhanabalan
03033c2365 Added navigation group for class characteristics
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 9s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 11s
Gemini PR Review / review (pull_request) Failing after 25s
Laravel Larastan / larastan (pull_request) Failing after 2m53s
Laravel Pint / pint (pull_request) Failing after 3m50s
2025-12-17 11:36:58 +05:30
860ff96134 Merge pull request 'Added driver master migration file' (#2) from fix-migration into master
All checks were successful
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Reviewed-on: #2
2025-12-17 03:52:20 +00:00
17 changed files with 385 additions and 9 deletions

View File

@@ -1,19 +1,23 @@
# Filename: .github/workflows/gemini-pr-review.yaml # Filename: .github/workflows/gemini-pr-review.yaml
name: Gemini PR Review name: Gemini PR Review
on: on:
pull_request: pull_request:
types: [opened, reopened, synchronize] types: [opened, reopened, synchronize]
workflow_dispatch: workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs: jobs:
review: gemini-pr-review:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Gemini PR Review
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v5 uses: actions/checkout@v6
with: with:
fetch-depth: 0 # This fetches the full history fetch-depth: 0 # This fetches the full history
@@ -22,7 +26,6 @@ jobs:
with: with:
node-version: '24' node-version: '24'
- name: Get npm cache directory - name: Get npm cache directory
id: npm-cache-dir id: npm-cache-dir
run: | run: |
@@ -36,8 +39,14 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-npm-global- ${{ runner.os }}-npm-global-
- name: Install Gemini CLI globally - name: Install Gemini CLI globally (if not already installed)
run: npm install -g --loglevel=http @google/gemini-cli run: |
if ! command -v gemini &> /dev/null; then
echo "Gemini CLI not found, installing..."
npm install -g --loglevel=http @google/gemini-cli
else
echo "Gemini CLI already installed."
fi
- name: Generate git diff and review with Gemini - name: Generate git diff and review with Gemini
id: review id: review
@@ -48,11 +57,17 @@ jobs:
git diff "${{ gitea.event.pull_request.base.sha }}...${{ gitea.event.pull_request.head.sha }}" > pr.diff git diff "${{ gitea.event.pull_request.base.sha }}...${{ gitea.event.pull_request.head.sha }}" > pr.diff
echo "Performing code review with Gemini..." echo "Performing code review with Gemini..."
cat .github/workflows/gemini-pr-review.md pr.diff | gemini > /tmp/gemini-output.txt if cat .github/workflows/gemini-pr-review.md pr.diff | gemini --model=gemini-pro > /tmp/gemini-output.txt; then
echo "Gemini review completed."
else
echo "⚠️ Gemini review failed (quota / API issue)." > /tmp/gemini-output.txt
echo "" >> /tmp/gemini-output.txt
echo "Check logs for details." >> /tmp/gemini-output.txt
fi
echo "Gemini error logs (if any):"
cat /tmp/gemini-client-error*.json || true cat /tmp/gemini-client-error*.json || true
- name: Post output to PR comment - name: Post output to PR comment
id: post_comment id: post_comment
run: | run: |

View File

@@ -26,6 +26,8 @@ class ProductionRejectReason extends Page
{ {
protected static ?string $navigationIcon = 'heroicon-o-document-text'; protected static ?string $navigationIcon = 'heroicon-o-document-text';
protected static ?string $navigationGroup = 'Production Reject';
protected static string $view = 'filament.pages.production-reject-reason'; protected static string $view = 'filament.pages.production-reject-reason';
public $qrData, $pId, $bId, $sId, $lId, $iId, $succId, $sNoId, $succStat, $recQr, $prodOrder; public $qrData, $pId, $bId, $sId, $lId, $iId, $succId, $sNoId, $succStat, $recQr, $prodOrder;

View File

@@ -35,6 +35,8 @@ class WebcamCapture extends Page implements HasForms
use HasFiltersForm; use HasFiltersForm;
protected static ?string $navigationIcon = 'heroicon-o-document-text'; protected static ?string $navigationIcon = 'heroicon-o-document-text';
protected static ?string $navigationGroup = 'OCR Validations';
protected static string $view = 'filament.pages.webcam-capture'; protected static string $view = 'filament.pages.webcam-capture';
public $photo; public $photo;

View File

@@ -25,6 +25,8 @@ class ClassCharacteristicResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Laser';
public static function form(Form $form): Form public static function form(Form $form): Form
{ {
return $form return $form

View File

@@ -39,6 +39,8 @@ class GrMasterResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Process Order';
public static function form(Form $form): Form public static function form(Form $form): Form
{ {
return $form return $form

View File

@@ -32,6 +32,8 @@ class OcrValidationResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'OCR Validations';
public $camera_capture; public $camera_capture;
public $serialNumbers = []; public $serialNumbers = [];

View File

@@ -29,6 +29,8 @@ class ProductCharacteristicsMasterResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Process Order';
public static function form(Form $form): Form public static function form(Form $form): Form
{ {
return $form return $form

View File

@@ -36,6 +36,8 @@ class RejectReasonResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Production Reject';
public static function form(Form $form): Form public static function form(Form $form): Form
{ {
return $form return $form

View File

@@ -25,6 +25,10 @@ class StickerMappingMasterResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Master Entries';
protected static ?int $navigationSort = 16;
public static function form(Form $form): Form public static function form(Form $form): Form
{ {
return $form return $form

View File

@@ -26,6 +26,8 @@ class StickerPrintingResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Sticker Reprint';
public static function form(Form $form): Form public static function form(Form $form): Form
{ {
return $form return $form

View File

@@ -0,0 +1,201 @@
<?php
namespace App\Filament\Resources;
use App\Filament\Exports\StickerStructureDetailExporter;
use App\Filament\Imports\StickerStructureDetailImporter;
use App\Filament\Resources\StickerStructureDetailResource\Pages;
use App\Filament\Resources\StickerStructureDetailResource\RelationManagers;
use App\Models\StickerStructureDetail;
use Filament\Facades\Filament;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Forms\Components\Actions\Action;
use Illuminate\Support\HtmlString;
use Filament\Forms\Components\Html;
use Filament\Forms\Get;
use Filament\Tables\Actions\ExportAction;
use Filament\Tables\Actions\ImportAction;
class StickerStructureDetailResource extends Resource
{
protected static ?string $model = StickerStructureDetail::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Customized Sticker Printing';
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('sticker_id')
->label('Sticker ID')
->reactive()
->required()
->afterStateUpdated(function ($state, callable $set) {
//\Log::info('Sticker ID typed:', ['sticker_id' => $state]);
$set('sticker_id_live', $state);
}),
Forms\Components\TextInput::make('sticker_width')
->label('Sticker Width')
->required(),
Forms\Components\TextInput::make('sticker_height')
->label('Sticker Height')
->required(),
Forms\Components\TextInput::make('sticker_lmargin')
->label('Sticker Left Margin')
->required(),
Forms\Components\TextInput::make('sticker_rmargin')
->label('Sticker Right Margin')
->required(),
Forms\Components\TextInput::make('sticker_tmargin')
->label('Sticker Top Margin')
->required(),
Forms\Components\TextInput::make('sticker_bmargin')
->label('Sticker Bottom Margin')
->required(),
Forms\Components\Hidden::make('created_by')
->label('Created By')
->default(Filament::auth()->user()?->name),
Forms\Components\Hidden::make('updated_by')
->label('Updated By')
->default(Filament::auth()->user()?->name),
Forms\Components\TextInput::make('sticker_id_live')
->default(fn ($get) => $get('sticker_id'))
->reactive()
->afterStateUpdated(function ($state, callable $set) {
\Log::info('Sticker ID Live:', ['sticker_id_live' => $state]);
$set('sticker_id_live', $state);
}),
Forms\Components\ViewField::make('generate_template')
->view('fields.generate-template')
->reactive()
->key(fn ($get) => 'generate-template' . ($get('sticker_id_live') ?? 'empty'))
->viewData(fn (Get $get) => [
'sticker_id' => $get('sticker_id_live') ?? 'empty',
])
// ->extraAttributes([
// // Pass the current sticker_id typed by the user
// //'sticker_id' => fn ($get) => $get('sticker_id'),
// 'sticker_id' => fn ($get) => $get('sticker_id') ?? 'empty',
// // 'sticker_id' => function ($get) {
// // \Log::info('ViewField closure executed');
// // $stickerId = $get('sticker_id');
// // // Use Laravel log to see value in real time
// // \Log::info('Sticker ID in ViewField:', $stickerId);
// // // You can also temporarily dd(), but it will stop form render
// // // dd($stickerId);
// // return $stickerId;
// // },
// ]),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id')
->label('ID')
->numeric()
->sortable(),
Tables\Columns\TextColumn::make('sticker_id')
->label('Sticker ID'),
Tables\Columns\TextColumn::make('sticker_width')
->label('Sticker Width'),
Tables\Columns\TextColumn::make('sticker_height')
->label('Sticker Height'),
Tables\Columns\TextColumn::make('sticker_lmargin')
->label('Sticker Left Margin'),
Tables\Columns\TextColumn::make('sticker_rmargin')
->label('Sticker Right Margin'),
Tables\Columns\TextColumn::make('sticker_tmargin')
->label('Sticker Top Margin'),
Tables\Columns\TextColumn::make('sticker_bmargin')
->label('Sticker Bottom Margin'),
Tables\Columns\TextColumn::make('created_at')
->label('Created At')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('updated_at')
->label('Updated At')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('deleted_at')
->label('Deleted At')
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->filters([
Tables\Filters\TrashedFilter::make(),
])
->actions([
Tables\Actions\ViewAction::make(),
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
Tables\Actions\ForceDeleteBulkAction::make(),
Tables\Actions\RestoreBulkAction::make(),
]),
])
->headerActions([
ImportAction::make()
->label('Import Sticker Structure Details')
->color('warning')
->importer(StickerStructureDetailImporter::class)
->visible(function() {
return Filament::auth()->user()->can('view import sticker structure details');
}),
ExportAction::make()
->label('Export Sticker Structure Details')
->color('warning')
->exporter(StickerStructureDetailExporter::class)
->visible(function() {
return Filament::auth()->user()->can('view export sticker structure details');
}),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListStickerStructureDetails::route('/'),
'create' => Pages\CreateStickerStructureDetail::route('/create'),
'view' => Pages\ViewStickerStructureDetail::route('/{record}'),
'edit' => Pages\EditStickerStructureDetail::route('/{record}/edit'),
];
}
public static function getEloquentQuery(): Builder
{
return parent::getEloquentQuery()
->withoutGlobalScopes([
SoftDeletingScope::class,
]);
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\StickerStructureDetailResource\Pages;
use App\Filament\Resources\StickerStructureDetailResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateStickerStructureDetail extends CreateRecord
{
protected static string $resource = StickerStructureDetailResource::class;
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Filament\Resources\StickerStructureDetailResource\Pages;
use App\Filament\Resources\StickerStructureDetailResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditStickerStructureDetail extends EditRecord
{
protected static string $resource = StickerStructureDetailResource::class;
protected function getHeaderActions(): array
{
return [
Actions\ViewAction::make(),
Actions\DeleteAction::make(),
Actions\ForceDeleteAction::make(),
Actions\RestoreAction::make(),
];
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\StickerStructureDetailResource\Pages;
use App\Filament\Resources\StickerStructureDetailResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListStickerStructureDetails extends ListRecords
{
protected static string $resource = StickerStructureDetailResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\StickerStructureDetailResource\Pages;
use App\Filament\Resources\StickerStructureDetailResource;
use Filament\Actions;
use Filament\Resources\Pages\ViewRecord;
class ViewStickerStructureDetail extends ViewRecord
{
protected static string $resource = StickerStructureDetailResource::class;
protected function getHeaderActions(): array
{
return [
Actions\EditAction::make(),
];
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class StickerStructureDetail extends Model
{
use SoftDeletes;
protected $fillable = [
'sticker_id',
'sticker_width',
'sticker_height',
'sticker_lmargin',
'sticker_rmargin',
'sticker_tmargin',
'sticker_bmargin',
'created_at',
'updated_at',
'created_by',
'updated_by'
];
}

View File

@@ -0,0 +1,42 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
$sql = <<<'SQL'
CREATE TABLE sticker_structure_details (
id BIGINT GENERATED always AS IDENTITY PRIMARY KEY,
sticker_id TEXT,
sticker_width TEXT,
sticker_height TEXT,
sticker_lmargin TEXT,
sticker_rmargin TEXT,
sticker_tmargin TEXT,
sticker_bmargin TEXT,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_by TEXT DEFAULT NULL,
updated_by TEXT DEFAULT NULL,
deleted_at TIMESTAMP
);
SQL;
DB::statement($sql);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('sticker_structure_details');
}
};