netgescon-master/_BACKUP_OLD_netgescon-laravel_INACTIVE/convert_admin_views.ps1

82 lines
3.0 KiB
PowerShell

# PowerShell script to convert admin views from <x-app-layout> to universal layout
# Get all admin blade files that contain <x-app-layout>
$adminFiles = Get-ChildItem -Path "resources\views\admin" -Filter "*.blade.php" -Recurse |
Where-Object { (Get-Content $_.FullName -Raw) -match '<x-app-layout>' }
Write-Host "Found $($adminFiles.Count) files to convert:"
foreach ($file in $adminFiles) {
Write-Host "Converting: $($file.FullName)"
$content = Get-Content $file.FullName -Raw
# Skip if already converted (contains @extends)
if ($content -match '@extends\(') {
Write-Host " - Already converted, skipping"
continue
}
# Extract title from header slot if present
$title = "Admin"
if ($content -match '<h2[^>]*>.*?\{\{\s*__\([''"]([^''"]*)[''"].*?') {
$title = $matches[1]
} elseif ($content -match '<h2[^>]*>([^<]*)</h2>') {
$title = $matches[1].Trim()
}
# Create new content with universal layout
$newContent = "@extends('layouts.app-universal')
@section('title', '$title')
@section('content')
<div class=""container-fluid"">
<div class=""row"">
<div class=""col-12"">
<div class=""card"">
<div class=""card-header"">
<h3 class=""card-title"">$title</h3>
</div>
<div class=""card-body"">
<!-- TODO: Convert Tailwind classes to Bootstrap -->
<div class=""alert alert-warning"">
<i class=""fas fa-exclamation-triangle""></i>
This page needs manual conversion from Tailwind to Bootstrap classes.
</div>
"
# Extract main content between <div class="py-12"> and </x-app-layout>
if ($content -match '(?s)<div class="py-12">(.*?)</x-app-layout>') {
$mainContent = $matches[1]
# Remove outer containers and replace with bootstrap structure
$mainContent = $mainContent -replace '(?s)<div class="max-w-[^"]*[^>]*>', ''
$mainContent = $mainContent -replace '(?s)<div class="bg-white[^>]*>', ''
$mainContent = $mainContent -replace '(?s)<div class="p-6[^>]*>', ''
$mainContent = $mainContent -replace '</div>\s*</div>\s*</div>\s*$', ''
$newContent += $mainContent
} else {
# Fallback: just remove x-app-layout tags
$contentBody = $content -replace '(?s)<x-app-layout>.*?</x-slot>', ''
$contentBody = $contentBody -replace '</x-app-layout>', ''
$contentBody = $contentBody -replace '<x-app-layout>', ''
$newContent += $contentBody
}
$newContent += "
</div>
</div>
</div>
</div>
</div>
@endsection"
# Write the new content
Set-Content -Path $file.FullName -Value $newContent -Encoding UTF8
Write-Host " - Converted successfully"
}
Write-Host "Conversion completed!"
Write-Host "Note: Manual review required to convert Tailwind classes to Bootstrap"