58 lines
1.7 KiB
PHP
58 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* @api-readonly
|
|
* Returns active dynamic document mappings
|
|
*/
|
|
// resources/views/admin-ajax/get-dynamic-documents.blade.php
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
// Set JSON header
|
|
header('Content-Type: application/json');
|
|
|
|
try {
|
|
// Get all active dynamic document mappings
|
|
$mappings = DB::table('register_document_mappings')
|
|
->where('is_active', 1)
|
|
->orderBy('order')
|
|
->orderBy('name')
|
|
->get();
|
|
|
|
$dynamicItems = [];
|
|
|
|
foreach ($mappings as $mapping) {
|
|
$displayTitle = !empty($mapping->description) ? $mapping->description : $mapping->name;
|
|
|
|
$dynamicItems[] = [
|
|
'id' => 'dynamic_' . $mapping->id,
|
|
'type' => 'dynamic',
|
|
'name' => $mapping->name,
|
|
'display_title' => $displayTitle,
|
|
'title2' => $mapping->name,
|
|
'path' => $mapping->search_folder,
|
|
'icon' => $mapping->icon ?? '🔧',
|
|
'badge_text' => $mapping->badge_text ?? 'Dynamic',
|
|
'badge_color' => $mapping->color ?? 'warning',
|
|
'sql_query' => $mapping->sql_query,
|
|
'identifier_field' => $mapping->identifier_field,
|
|
'date_field' => $mapping->date_field,
|
|
'file_search_pattern' => $mapping->file_search_pattern,
|
|
'title2_pattern' => $mapping->title2_pattern,
|
|
'title4_pattern' => $mapping->title4_pattern,
|
|
'is_dynamic' => true
|
|
];
|
|
}
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'dynamic_items' => $dynamicItems
|
|
], JSON_UNESCAPED_UNICODE);
|
|
|
|
} catch (\Throwable $th) {
|
|
echo json_encode([
|
|
'success' => false,
|
|
'message' => $th->getMessage()
|
|
], JSON_UNESCAPED_UNICODE);
|
|
}
|
|
exit;
|