അംഗനവാടികള്
<!DOCTYPE html>
<html lang="ml">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>തിടനാട് ഗ്രാമപഞ്ചായത്ത് - അംഗൻവാടി പോർട്ടൽ</title>
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Font Awesome Icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- Google Fonts for Malayalam -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Manjari:wght@400;700&family=Noto+Sans+Malayalam:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
kerala: {
800: '#064e3b',
700: '#0d5c3a',
600: '#15803d',
500: '#16a34a',
100: '#dcfce7',
50: '#f0fdf4',
},
gold: {
500: '#eab308',
600: '#ca8a04',
100: '#fef9c3',
}
},
fontFamily: {
malayalam: ['"Noto Sans Malayalam"', '"Manjari"', 'sans-serif'],
}
}
}
}
</script>
<style>
body {
font-family: 'Noto Sans Malayalam', 'Manjari', sans-serif;
background-color: #f4f7f4;
}
/* Print Specific Styles */
@media print {
.no-print {
display: none !important;
}
.print-only {
display: block !important;
}
body {
background: white !important;
color: black !important;
}
.card-grid {
display: grid !important;
grid-template-columns: repeat(2, 1fr) !important;
gap: 1rem !important;
}
.page-break {
page-break-inside: avoid;
}
}
.custom-scrollbar::-webkit-scrollbar {
width: 6px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: #f1f1f1;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: #0d5c3a;
border-radius: 4px;
}
</style>
</head>
<body class="text-gray-800 antialiased min-h-screen flex flex-col justify-between">
<!-- Header / Navbar Section -->
<header class="bg-gradient-to-r from-kerala-800 via-kerala-700 to-kerala-800 text-white shadow-xl border-b-4 border-gold-500 sticky top-0 z-30">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
<div class="flex flex-col md:flex-row items-center justify-between gap-4">
<!-- Emblem & Title -->
<div class="flex items-center space-x-4 space-x-reverse">
<div class="w-16 h-16 sm:w-20 sm:h-20 bg-white rounded-full p-2 shadow-inner border-2 border-gold-500 flex items-center justify-center shrink-0">
<!-- Custom Seal / Icon representing Panchayat & Children -->
<div class="text-center text-kerala-700">
<i class="fa-solid font-bold text-2xl sm:text-3xl fa-hands-holding-child"></i>
<span class="block text-[8px] font-bold uppercase tracking-tighter text-gold-600">തിടനാട്</span>
</div>
</div>
<div class="text-center md:text-left">
<span class="inline-block px-2.5 py-0.5 rounded-full text-xs font-semibold bg-gold-500 text-kerala-800 mb-1">
കോട്ടയം ജില്ല • ഈരാറ്റുപേട്ട ബ്ലോക്ക്
</span>
<h1 class="text-2xl sm:text-3xl font-extrabold tracking-tight text-white drop-shadow-md">
തിടനാട് ഗ്രാമപഞ്ചായത്ത്
</h1>
<p class="text-xs sm:text-sm text-kerala-100 font-medium">
സ്ത്രീ - ശിശു വികസന വകുപ്പ് • ഐ.സി.ഡി.എസ് പദ്ധതി അംഗൻവാടികളുടെ പട്ടിക
</p>
</div>
</div>
<!-- Quick Actions Top Bar (No Print) -->
<div class="flex items-center gap-2 no-print">
<button onclick="toggleView('grid')" id="btn-grid-view" class="px-3 py-2 bg-kerala-600 hover:bg-kerala-500 text-white text-sm rounded-lg transition-all shadow flex items-center gap-1.5 font-medium border border-kerala-500">
<i class="fa-solid fa-border-all"></i> <span class="hidden sm:inline">ഗ്രിഡ്</span>
</button>
<button onclick="toggleView('table')" id="btn-table-view" class="px-3 py-2 bg-kerala-800 hover:bg-kerala-500 text-white text-sm rounded-lg transition-all shadow flex items-center gap-1.5 font-medium border border-kerala-500">
<i class="fa-solid fa-list-check"></i> <span class="hidden sm:inline">പട്ടിക</span>
</button>
<button onclick="window.print()" class="px-4 py-2 bg-gold-500 hover:bg-gold-600 text-kerala-800 text-sm font-bold rounded-lg transition-all shadow-md flex items-center gap-2 border border-gold-600">
<i class="fa-solid fa-print"></i> <span>പ്രിന്റ്</span>
</button>
</div>
</div>
</div>
</header>
<!-- Main Content Container -->
<main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6 flex-grow w-full">
<!-- Stats & Information Banner -->
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 mb-6">
<!-- Card 1: Total Count -->
<div class="bg-white rounded-xl shadow-md border-l-4 border-kerala-700 p-4 flex items-center justify-between">
<div>
<p class="text-xs font-semibold text-gray-500 uppercase tracking-wider">ആകെ അംഗൻവാടികൾ</p>
<p class="text-3xl font-extrabold text-kerala-800" id="stat-total-count">20</p>
</div>
<div class="w-12 h-12 bg-kerala-50 rounded-full flex items-center justify-center text-kerala-700 text-xl font-bold">
<i class="fa-solid fa-child-reaching"></i>
</div>
</div>
<!-- Card 2: Sector Info -->
<div class="bg-white rounded-xl shadow-md border-l-4 border-gold-500 p-4 flex items-center justify-between">
<div>
<p class="text-xs font-semibold text-gray-500 uppercase tracking-wider">പഞ്ചായത്ത് പരിധി</p>
<p class="text-base font-bold text-gray-800">തിടനാട് (Thidanad)</p>
</div>
<div class="w-12 h-12 bg-gold-100 rounded-full flex items-center justify-center text-gold-600 text-xl font-bold">
<i class="fa-solid fa-map-location-dot"></i>
</div>
</div>
<!-- Card 3: ICDS Project -->
<div class="bg-white rounded-xl shadow-md border-l-4 border-blue-600 p-4 flex items-center justify-between">
<div>
<p class="text-xs font-semibold text-gray-500 uppercase tracking-wider">ഐ.സി.ഡി.എസ് ബ്ലോക്ക്</p>
<p class="text-base font-bold text-gray-800">ഈരാറ്റുപേട്ട പ്രോജക്ട്</p>
</div>
<div class="w-12 h-12 bg-blue-50 rounded-full flex items-center justify-center text-blue-600 text-xl font-bold">
<i class="fa-solid fa-building-columns"></i>
</div>
</div>
<!-- Card 4: Services Info -->
<div class="bg-white rounded-xl shadow-md border-l-4 border-emerald-600 p-4 flex items-center justify-between">
<div>
<p class="text-xs font-semibold text-gray-500 uppercase tracking-wider">പ്രധാന സേവനങ്ങൾ</p>
<p class="text-xs font-bold text-gray-700">പോഷകാഹാരം • പ്രീ-സ്കൂൾ • മാതൃപരിപാലനം</p>
</div>
<div class="w-12 h-12 bg-emerald-50 rounded-full flex items-center justify-center text-emerald-600 text-xl font-bold">
<i class="fa-solid fa-apple-whole"></i>
</div>
</div>
</div>
<!-- Search & Control Toolbar (No Print) -->
<div class="bg-white p-4 rounded-xl shadow-sm border border-gray-200 mb-6 no-print">
<div class="flex flex-col md:flex-row gap-4 items-center justify-between">
<!-- Search Box -->
<div class="relative w-full md:w-96">
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none text-gray-400">
<i class="fa-solid fa-magnifying-glass"></i>
</div>
<input type="text" id="searchInput" oninput="filterAnganwadi()"
placeholder="പേരോ നമ്പറോ തിരയുക (ഉദാ: 66, തിടനാട്)..."
class="w-full pl-10 pr-4 py-2.5 bg-gray-50 border border-gray-300 rounded-lg text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-kerala-600 focus:bg-white transition-all">
</div>
<!-- Info Badges & Sort -->
<div class="flex flex-wrap items-center justify-end gap-3 w-full md:w-auto text-sm">
<span class="text-gray-500 text-xs">
കാണിക്കുന്നത്: <strong id="visible-count" class="text-kerala-800">20</strong> / 20
</span>
<button onclick="resetSearch()" class="px-3 py-1.5 text-xs text-gray-600 hover:text-kerala-800 bg-gray-100 hover:bg-gray-200 rounded-md transition font-medium">
<i class="fa-solid fa-rotate-left mr-1"></i> റീസെറ്റ്
</button>
</div>
</div>
</div>
<!-- Printable Header (Visible Only in Print) -->
<div class="hidden print-only text-center mb-6 border-b pb-4">
<h1 class="text-2xl font-bold text-gray-900">തിടനാട് ഗ്രാമപഞ്ചായത്ത് - അംഗൻവാടികളുടെ പട്ടിക</h1>
<p class="text-sm text-gray-600">സ്ത്രീ - ശിശു വികസന വകുപ്പ് | ഐ.സി.ഡി.എസ് ഓഫീസ്, ഈരാറ്റുപേട്ട</p>
<p class="text-xs text-gray-500 mt-1">അച്ചടിച്ച തീയതി: <span id="print-date"></span></p>
</div>
<!-- Grid View (Default) -->
<div id="grid-view-container" class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
<!-- Dynamically populated cards -->
</div>
<!-- Table View (Hidden by default) -->
<div id="table-view-container" class="hidden bg-white rounded-xl shadow-md overflow-hidden border border-gray-200">
<div class="overflow-x-auto">
<table class="w-full text-left border-collapse">
<thead>
<tr class="bg-kerala-800 text-white text-sm font-semibold">
<th class="py-3 px-4 text-center w-16">ക്രമ നം.</th>
<th class="py-3 px-4 text-center w-28">അംഗൻവാടി നം.</th>
<th class="py-3 px-4">അംഗൻവാടിയുടെ പേര്</th>
<th class="py-3 px-4">പഞ്ചായത്ത് / വാർഡ്</th>
<th class="py-3 px-4 text-center no-print">വിശദാംശങ്ങൾ</th>
</tr>
</thead>
<tbody id="table-body" class="divide-y divide-gray-100 text-sm">
<!-- Dynamically populated rows -->
</tbody>
</table>
</div>
</div>
<!-- Empty State Message -->
<div id="no-results" class="hidden text-center py-12 bg-white rounded-xl shadow-sm border border-dashed border-gray-300">
<div class="w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mx-auto text-gray-400 mb-3 text-2xl">
<i class="fa-solid fa-folder-open"></i>
</div>
<h3 class="text-base font-bold text-gray-700">അംഗൻവാടി കണ്ടെത്തിയില്ല</h3>
<p class="text-xs text-gray-500 mt-1">നിങ്ങൾ നൽകിയ വാക്കുകൾക്ക് അനുയോജ്യമായ വിവരങ്ങൾ പട്ടികയിൽ ലഭ്യമല്ല.</p>
<button onclick="resetSearch()" class="mt-4 px-4 py-2 text-xs font-semibold bg-kerala-700 text-white rounded-lg hover:bg-kerala-800 transition">
പൂർണ്ണ പട്ടിക കാണുക
</button>
</div>
</main>
<!-- Detailed Modal Box (No Print) -->
<div id="detailModal" class="fixed inset-0 bg-black/60 backdrop-blur-sm z-50 flex items-center justify-center hidden p-4 no-print">
<div class="bg-white rounded-2xl shadow-2xl max-w-md w-full overflow-hidden transform transition-all duration-300 scale-95 opacity-0" id="modalContent">
<!-- Modal Header -->
<div class="bg-gradient-to-r from-kerala-800 to-kerala-700 text-white p-5 relative">
<button onclick="closeModal()" class="absolute top-4 right-4 text-white/80 hover:text-white bg-white/10 hover:bg-white/20 rounded-full w-8 h-8 flex items-center justify-center transition">
<i class="fa-solid fa-xmark"></i>
</button>
<div class="inline-block px-3 py-1 bg-gold-500 text-kerala-900 font-extrabold text-xs rounded-full mb-2" id="modal-center-no">
അംഗൻവാടി നം: --
</div>
<h3 class="text-xl font-bold" id="modal-center-name">അംഗൻവാടിയുടെ പേര്</h3>
<p class="text-xs text-kerala-100 mt-0.5">തിടനാട് ഗ്രാമപഞ്ചായത്ത്</p>
</div>
<!-- Modal Body -->
<div class="p-6 space-y-4">
<div class="flex items-center space-x-3 space-x-reverse bg-gray-50 p-3 rounded-lg border border-gray-100">
<div class="w-10 h-10 bg-kerala-100 text-kerala-700 rounded-full flex items-center justify-center text-lg font-bold shrink-0">
<i class="fa-solid fa-location-dot"></i>
</div>
<div>
<p class="text-xs text-gray-500 font-medium">ലൊക്കേഷൻ / സ്ഥലം</p>
<p class="text-sm font-bold text-gray-800" id="modal-location">--</p>
</div>
</div>
<div class="grid grid-cols-2 gap-3 text-xs">
<div class="bg-gray-50 p-3 rounded-lg border border-gray-100">
<span class="text-gray-500 block mb-1">ബ്ലോക്ക് പ്രോജക്ട്</span>
<span class="font-bold text-gray-800">ഈരാറ്റുപേട്ട</span>
</div>
<div class="bg-gray-50 p-3 rounded-lg border border-gray-100">
<span class="text-gray-500 block mb-1">ജില്ല</span>
<span class="font-bold text-gray-800">കോട്ടയം</span>
</div>
</div>
<!-- Info Box -->
<div class="bg-amber-50 border-l-4 border-amber-400 p-3 rounded-r-lg text-xs text-amber-900">
<p class="font-semibold flex items-center gap-1">
<i class="fa-solid fa-circle-info text-amber-600"></i> ഐ.സി.ഡി.എസ് വിവരങ്ങൾ:
</p>
<p class="mt-1 text-amber-800">
കുട്ടികളുടെ പ്രീ-സ്കൂൾ വിദ്യാഭ്യാസം, പോഷകാഹാര വിതരണം, വാക്സിനേഷൻ മാർഗ്ഗനിർദ്ദേശം എന്നിവ നൽകുന്നു.
</p>
</div>
</div>
<!-- Modal Footer -->
<div class="bg-gray-100 p-4 border-t border-gray-200 flex justify-end">
<button onclick="closeModal()" class="px-4 py-2 bg-gray-700 hover:bg-gray-800 text-white text-xs font-semibold rounded-lg transition">
അടയ്ക്കുക
</button>
</div>
</div>
</div>
<!-- Footer Section -->
<footer class="bg-kerala-800 text-white mt-12 border-t-4 border-gold-500 no-print">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
<div class="flex flex-col md:flex-row items-center justify-between gap-4 text-xs text-kerala-100">
<div class="text-center md:text-left">
<p class="font-bold text-sm text-white">തിടനാട് ഗ്രാമപഞ്ചായത്ത് ഓഫീസ്</p>
<p>പിണ്ണാക്കനാട് പി. ഒ., കോട്ടയം ജില്ല, കേരളം - 686536</p>
</div>
<div class="text-center md:text-right">
<p>© തിടനാട് ഗ്രാമപഞ്ചായത്ത് - എല്ലാ അവകാശങ്ങളും സംരക്ഷിതം</p>
<p class="text-kerala-100/70 text-[10px] mt-0.5">സ്ത്രീ - ശിശു വികസന വകുപ്പ് ഐ.സി.ഡി.എസ് സംരംഭം</p>
</div>
</div>
</div>
</footer>
<!-- JavaScript Data and Logic -->
<script>
// Official Anganwadi List Data
const anganwadiData = [
{ slNo: 1, number: "62", name: "അമ്പാറനിരപ്പേൽ" },
{ slNo: 2, number: "63", name: "കൊണ്ടൂർ" },
{ slNo: 3, number: "64", name: "പാതാഴ" },
{ slNo: 4, number: "65", name: "പാക്കയം" },
{ slNo: 5, number: "66", name: "തിടനാട്" },
{ slNo: 6, number: "67", name: "പൊന്തനാൽ" },
{ slNo: 7, number: "68", name: "ചെമ്മലമറ്റം" },
{ slNo: 8, number: "69", name: "വാര്യാനിക്കാട്" },
{ slNo: 9, number: "70", name: "മൈലാടി" },
{ slNo: 10, number: "71", name: "പിണ്ണാക്കനാട് സെന്റർ" },
{ slNo: 11, number: "72", name: "ചേരാനി" },
{ slNo: 12, number: "74", name: "കുന്നുംപുറം" },
{ slNo: 13, number: "75", name: "തണ്ണീനാൽ" },
{ slNo: 14, number: "76", name: "പൂവത്തോട്" },
{ slNo: 15, number: "77", name: "ചേറ്റൂതോട്" },
{ slNo: 16, number: "117", name: "പിണ്ണാക്കനാട്" },
{ slNo: 17, number: "118", name: "പൂവാങ്കൽ" },
{ slNo: 18, number: "119", name: "കരിമ്പനോലി" },
{ slNo: 19, number: "120", name: "കാവുംകുളം" },
{ slNo: 20, number: "139", name: "കാളകെട്ടി" }
];
let activeView = 'grid';
// Render Cards and Table Rows on Load
window.onload = function() {
renderCards(anganwadiData);
renderTable(anganwadiData);
// Set current print date
const today = new Date();
const dateStr = today.toLocaleDateString('ml-IN', { year: 'numeric', month: 'long', day: 'numeric' });
document.getElementById('print-date').innerText = dateStr;
};
// Render Grid View Cards
function renderCards(data) {
const gridContainer = document.getElementById('grid-view-container');
gridContainer.innerHTML = '';
data.forEach((item) => {
const card = document.createElement('div');
card.className = "bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 border border-gray-100 hover:border-kerala-500 overflow-hidden flex flex-col justify-between group page-break cursor-pointer";
card.onclick = () => openModal(item);
card.innerHTML = `
<div class="p-5">
<div class="flex items-center justify-between mb-3">
<span class="inline-block px-3 py-1 bg-kerala-50 text-kerala-800 text-xs font-bold rounded-full border border-kerala-100 group-hover:bg-kerala-700 group-hover:text-white transition-colors">
അങ്കണവാടി നം. ${item.number}
</span>
<span class="text-xs text-gray-400 font-semibold"># ${item.slNo}</span>
</div>
<h3 class="text-lg font-bold text-gray-900 group-hover:text-kerala-700 transition-colors mb-2">
${item.name}
</h3>
<p class="text-xs text-gray-500 flex items-center gap-1.5">
<i class="fa-solid fa-location-dot text-kerala-600"></i> തിടനാട് ഗ്രാമപഞ്ചായത്ത്
</p>
</div>
<div class="px-5 py-3 bg-gray-50 border-t border-gray-100 flex items-center justify-between text-xs text-kerala-700 font-semibold no-print">
<span>വിശദവിവരങ്ങൾ</span>
<i class="fa-solid fa-arrow-right group-hover:translate-x-1 transition-transform"></i>
</div>
`;
gridContainer.appendChild(card);
});
}
// Render Table View Rows
function renderTable(data) {
const tableBody = document.getElementById('table-body');
tableBody.innerHTML = '';
data.forEach((item, index) => {
const tr = document.createElement('tr');
tr.className = index % 2 === 0 ? 'bg-white hover:bg-gray-50' : 'bg-gray-50/50 hover:bg-gray-100';
tr.innerHTML = `
<td class="py-3.5 px-4 text-center font-semibold text-gray-500">${item.slNo}</td>
<td class="py-3.5 px-4 text-center">
<span class="font-extrabold text-kerala-800 bg-kerala-50 px-2.5 py-1 rounded border border-kerala-200">
${item.number}
</span>
</td>
<td class="py-3.5 px-4 font-bold text-gray-900">${item.name}</td>
<td class="py-3.5 px-4 text-gray-600 text-xs">തിടനാട് ഗ്രാമപഞ്ചായത്ത്</td>
<td class="py-3.5 px-4 text-center no-print">
<button onclick='event.stopPropagation(); openModal(${JSON.stringify(item)})' class="px-2.5 py-1 text-xs bg-kerala-100 hover:bg-kerala-700 hover:text-white text-kerala-800 rounded font-semibold transition">
<i class="fa-solid fa-eye mr-1"></i> നോക്കുക
</button>
</td>
`;
tableBody.appendChild(tr);
});
}
// Search & Filter Logic
function filterAnganwadi() {
const query = document.getElementById('searchInput').value.trim().toLowerCase();
const filtered = anganwadiData.filter(item => {
return item.name.toLowerCase().includes(query) || item.number.toLowerCase().includes(query);
});
renderCards(filtered);
renderTable(filtered);
// Update result counter
document.getElementById('visible-count').innerText = filtered.length;
// Toggle No Results Message
const noResults = document.getElementById('no-results');
const gridView = document.getElementById('grid-view-container');
const tableView = document.getElementById('table-view-container');
if (filtered.length === 0) {
noResults.classList.remove('hidden');
gridView.classList.add('hidden');
tableView.classList.add('hidden');
} else {
noResults.classList.add('hidden');
if (activeView === 'grid') {
gridView.classList.remove('hidden');
} else {
tableView.classList.remove('hidden');
}
}
}
// Reset Search Input
function resetSearch() {
document.getElementById('searchInput').value = '';
filterAnganwadi();
}
// Switch View Modes (Grid / Table)
function toggleView(view) {
activeView = view;
const gridContainer = document.getElementById('grid-view-container');
const tableContainer = document.getElementById('table-view-container');
const btnGrid = document.getElementById('btn-grid-view');
const btnTable = document.getElementById('btn-table-view');
if (view === 'grid') {
gridContainer.classList.remove('hidden');
tableContainer.classList.add('hidden');
btnGrid.classList.replace('bg-kerala-800', 'bg-kerala-600');
btnTable.classList.replace('bg-kerala-600', 'bg-kerala-800');
} else {
gridContainer.classList.add('hidden');
tableContainer.classList.remove('hidden');
btnTable.classList.replace('bg-kerala-800', 'bg-kerala-600');
btnGrid.classList.replace('bg-kerala-600', 'bg-kerala-800');
}
}
// Modal Box Functions
function openModal(item) {
document.getElementById('modal-center-no').innerText = `അംഗൻവാടി നം: ${item.number}`;
document.getElementById('modal-center-name').innerText = `${item.number} - ${item.name}`;
document.getElementById('modal-location').innerText = `${item.name}, തിടനാട്`;
const modal = document.getElementById('detailModal');
const content = document.getElementById('modalContent');
modal.classList.remove('hidden');
setTimeout(() => {
content.classList.remove('scale-95', 'opacity-0');
content.classList.add('scale-100', 'opacity-100');
}, 10);
}
function closeModal() {
const modal = document.getElementById('detailModal');
const content = document.getElementById('modalContent');
content.classList.remove('scale-100', 'opacity-100');
content.classList.add('scale-95', 'opacity-0');
setTimeout(() => {
modal.classList.add('hidden');
}, 200);
}
// Close Modal on clicking outside
document.getElementById('detailModal').addEventListener('click', function(e) {
if (e.target === this) {
closeModal();
}
});
</script>
</body>
</html>