Sindbad~EG File Manager
<?php
require_once '../includes/functions.php';
// Check if user is logged in
if (!isLoggedIn()) {
header('Location: ' . BASE_URL . 'login.php');
exit();
}
$user = getCurrentUser();
$db = new CopMadinaDB();
$conn = $db->getConnection();
// Get assemblies based on user role and permissions
$whereClause = "WHERE a.status = 'active'";
$params = [];
if ($user['role'] === 'area_admin') {
$whereClause .= " AND d.area_id = ?";
$params[] = $user['area_id'];
} elseif ($user['role'] === 'district_admin') {
$whereClause .= " AND a.district_id = ?";
$params[] = $user['district_id'];
} elseif ($user['role'] === 'assembly_admin') {
$whereClause .= " AND a.id = ?";
$params[] = $user['assembly_id'];
}
$sql = "SELECT a.*,
d.name as district_name,
ar.name as area_name,
(SELECT COUNT(*) FROM users u WHERE u.assembly_id = a.id AND u.status = 'active') as member_count,
(SELECT COUNT(*) FROM events e WHERE e.assembly_id = a.id AND e.status = 'active') as event_count
FROM assemblies a
LEFT JOIN districts d ON a.district_id = d.id
LEFT JOIN areas ar ON d.area_id = ar.id
$whereClause
ORDER BY ar.name, d.name, a.name";
$assemblies = executeQuery($sql, $params)->fetchAll();
$settings = getSettings();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Assemblies - COP Madina Conference Management</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: {
50: '#eff6ff',
100: '#dbeafe',
500: '#3b82f6',
600: '#2563eb',
700: '#1d4ed8',
800: '#1e40af',
900: '#1e3a8a'
}
}
}
}
}
</script>
<style>
.gradient-bg {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.sidebar-active {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
</style>
</head>
<body class="bg-gray-100">
<div id="app" class="flex h-screen">
<?php include '../includes/public_sidebar.php'; ?>
<!-- Main Content -->
<div class="flex-1 flex flex-col overflow-hidden">
<div class="flex-1 overflow-y-auto">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
<!-- Page Header -->
<div class="mb-8">
<h1 class="text-3xl font-bold text-gray-900">Local Assemblies</h1>
<p class="mt-2 text-gray-600">Browse local church assemblies and their activities</p>
</div>
<!-- Assemblies Grid -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<?php foreach ($assemblies as $assembly): ?>
<div class="bg-white rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-shadow">
<div class="p-6">
<div class="flex items-center mb-4">
<div class="w-12 h-12 bg-purple-100 rounded-full flex items-center justify-center mr-4">
<i class="fas fa-church text-purple-600 text-xl"></i>
</div>
<div>
<h3 class="text-xl font-bold text-gray-900">
<?php echo htmlspecialchars($assembly['name']); ?>
</h3>
<p class="text-sm text-gray-500">
<?php echo htmlspecialchars($assembly['district_name']); ?> District
</p>
</div>
</div>
<?php if (isset($assembly['description']) && $assembly['description']): ?>
<p class="text-gray-600 mb-4">
<?php echo htmlspecialchars($assembly['description']); ?>
</p>
<?php endif; ?>
<div class="space-y-2 mb-4">
<?php if ($assembly['address']): ?>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-map-marker-alt mr-2"></i>
<?php echo htmlspecialchars($assembly['address']); ?>
</div>
<?php endif; ?>
<?php if (isset($assembly['contact_phone']) && $assembly['contact_phone']): ?>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-phone mr-2"></i>
<?php echo htmlspecialchars($assembly['contact_phone']); ?>
</div>
<?php endif; ?>
<?php if (isset($assembly['contact_email']) && $assembly['contact_email']): ?>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-envelope mr-2"></i>
<?php echo htmlspecialchars($assembly['contact_email']); ?>
</div>
<?php endif; ?>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-sitemap mr-2"></i>
<?php echo htmlspecialchars($assembly['area_name'] . ' > ' . $assembly['district_name']); ?>
</div>
</div>
<div class="flex items-center justify-between pt-4 border-t border-gray-200">
<div class="flex space-x-4">
<div class="text-center">
<div class="text-lg font-bold text-primary-600"><?php echo $assembly['member_count']; ?></div>
<div class="text-xs text-gray-500">Members</div>
</div>
<div class="text-center">
<div class="text-lg font-bold text-green-600"><?php echo $assembly['event_count']; ?></div>
<div class="text-xs text-gray-500">Events</div>
</div>
</div>
<span class="inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-green-100 text-green-800">
Active
</span>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php if (empty($assemblies)): ?>
<div class="text-center py-12">
<i class="fas fa-church text-gray-400 text-6xl mb-4"></i>
<h3 class="text-xl font-semibold text-gray-900 mb-2">No Assemblies Found</h3>
<p class="text-gray-600">There are currently no assemblies available to display.</p>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<script>
const { createApp } = Vue;
createApp({
data() {
return {
// Add any reactive data here
}
},
methods: {
// Add any methods here
}
}).mount('#app');
</script>
</body>
</html>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists