-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
271 lines (243 loc) · 29.2 KB
/
Copy pathindex.html
File metadata and controls
271 lines (243 loc) · 29.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
<!doctype html>
<html lang="en">
<head>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-NDMJ7KJ');</script>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Azerbaijan PostgreSQL User Group (AZERPUG). Join the open-source PostgreSQL community in Azerbaijan.">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<link rel="stylesheet" href="/css/pgyum.css">
<title>Azerbaijan PostgreSQL User Group (AZERPUG)</title>
<style>
:root{--pg-blue-dark:#336791;--pg-blue-light:#e7eef4;--pg-blue-hover:#264d6f;--pg-text:#515151;--pg-text-light:#6c757d;--pg-border:#d8dde3;--pg-bg-light:#f5f5f5;--pg-white:#fff;--pg-success:#28a745}
.pg-page-wrapper{max-width:1140px;margin:0 auto;padding:0 15px}
/* Hero */
.pg-hero{background:linear-gradient(135deg,var(--pg-blue-dark) 0%,#1a3d5c 100%);color:var(--pg-white);border-radius:8px;padding:48px 44px;margin-top:1rem;margin-bottom:2rem;position:relative;overflow:hidden;text-align:center}
.pg-hero h1{font-family:'Maven Pro',sans-serif;font-size:2rem;font-weight:700;margin:0 0 8px;text-transform:none;color:var(--pg-white)}
.pg-hero .subtitle{font-size:1.05rem;opacity:.9;margin-bottom:6px;line-height:1.6}
.pg-hero .subtitle-az{font-size:.92rem;opacity:.7;font-style:italic;margin-bottom:20px}
.pg-hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.pg-hero-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:4px;font-family:'Maven Pro',sans-serif;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;text-decoration:none;transition:all .15s ease}
.pg-hero-btn-primary{background:var(--pg-white);color:var(--pg-blue-dark)}.pg-hero-btn-primary:hover{background:#e0e8ef;color:var(--pg-blue-dark);text-decoration:none}
.pg-hero-btn-outline{background:transparent;color:var(--pg-white);border:2px solid rgba(255,255,255,.4)}.pg-hero-btn-outline:hover{background:rgba(255,255,255,.1);border-color:var(--pg-white);color:var(--pg-white);text-decoration:none}
.pg-hero-stats{display:flex;justify-content:center;gap:40px;margin-top:28px;flex-wrap:wrap}
.pg-hero-stat-num{font-family:'Maven Pro',sans-serif;font-size:1.8rem;font-weight:700;line-height:1}
.pg-hero-stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;opacity:.7;margin-top:2px}
/* Features grid */
.pg-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-bottom:2.5rem}
.pg-feature{background:var(--pg-white);border:1px solid var(--pg-border);border-radius:6px;padding:28px 24px;text-align:center;transition:box-shadow .2s,border-color .2s,transform .2s;text-decoration:none;color:var(--pg-text);display:block}
.pg-feature:hover{box-shadow:0 6px 20px rgba(0,0,0,.08);border-color:var(--pg-blue-dark);transform:translateY(-2px);text-decoration:none;color:var(--pg-text)}
.pg-feature-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:var(--pg-white);margin:0 auto 16px}
.pg-feature h3{font-family:'Maven Pro',sans-serif;font-size:.92rem;font-weight:700;margin:0 0 8px;text-transform:uppercase;color:var(--pg-text)}
.pg-feature p{font-size:.82rem;color:var(--pg-text-light);line-height:1.5;margin:0}
/* Section titles */
.pg-section-title{font-family:'Maven Pro',sans-serif;font-size:1.1rem;font-weight:700;color:var(--pg-text);text-transform:uppercase;padding-bottom:8px;border-bottom:2px solid var(--pg-border);margin:0 0 1.25rem;display:flex;align-items:center;gap:8px}.pg-section-title i{color:var(--pg-blue-dark)}
/* Recent posts */
.pg-posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:2rem}
.pg-post-card{background:var(--pg-white);border:1px solid var(--pg-border);border-radius:4px;padding:20px;transition:box-shadow .15s}
.pg-post-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}
.pg-post-card h4{font-family:'Maven Pro',sans-serif;font-size:.92rem;font-weight:700;margin:0 0 6px;text-transform:none}
.pg-post-card h4 a{color:var(--pg-blue-dark);text-decoration:none}.pg-post-card h4 a:hover{color:var(--pg-blue-hover)}
.pg-post-meta{font-size:.78rem;color:var(--pg-text-light)}.pg-post-meta i{margin-right:3px}
.pg-post-excerpt{font-size:.82rem;color:var(--pg-text);line-height:1.5;margin-top:8px}
/* Welcome dashboard (logged in) */
.pg-welcome{background:linear-gradient(135deg,var(--pg-blue-dark),#1a3d5c);color:var(--pg-white);border-radius:8px;padding:32px 36px;margin-top:1rem;margin-bottom:1.5rem;position:relative;overflow:hidden}
.pg-welcome::after{content:'';position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:url('/pict/smal.png') no-repeat center;background-size:contain;opacity:.07;pointer-events:none}
.pg-welcome h1{font-family:'Maven Pro',sans-serif;font-size:1.5rem;font-weight:700;margin:0 0 6px;text-transform:none;color:var(--pg-white)}
.pg-welcome p{margin:0;font-size:.95rem;opacity:.9}.pg-welcome .pg-welcome-date{font-size:.8rem;opacity:.7;margin-top:8px}
.pg-actions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:1.5rem}
.pg-action-card{background:var(--pg-white);border:1px solid var(--pg-border);border-radius:4px;padding:20px;display:flex;align-items:flex-start;gap:14px;transition:box-shadow .15s,border-color .15s;text-decoration:none;color:var(--pg-text)}
.pg-action-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08);border-color:var(--pg-blue-dark);text-decoration:none;color:var(--pg-text)}
.pg-action-icon{width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--pg-white);flex-shrink:0}
.pg-action-card h3{font-family:'Maven Pro',sans-serif;font-size:.92rem;font-weight:700;margin:0 0 4px;text-transform:none;color:var(--pg-text)}.pg-action-card p{font-size:.8rem;color:var(--pg-text-light);margin:0;line-height:1.4}
.pg-admin-bar{background:#fef2f2;border:1px solid #fca5a5;border-radius:4px;padding:14px 20px;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pg-admin-bar-text{font-size:.88rem;color:#991b1b}.pg-admin-bar-text i{margin-right:6px}.pg-admin-bar-text strong{color:#c62828}
.pg-admin-btn{display:inline-flex;align-items:center;gap:6px;background:#c62828;color:#fff;padding:6px 16px;border-radius:3px;font-family:'Maven Pro',sans-serif;font-size:.78rem;font-weight:700;text-transform:uppercase;text-decoration:none;transition:background .15s}.pg-admin-btn:hover{background:#a31c1c;color:#fff;text-decoration:none}
.pg-card{background:var(--pg-white);border:1px solid var(--pg-border);border-radius:4px;padding:20px;margin-bottom:1.5rem}
.pg-empty-posts{text-align:center;padding:1.5rem;color:var(--pg-text-light);font-size:.88rem}.pg-empty-posts i{font-size:1.5rem;color:var(--pg-border);display:block;margin-bottom:8px}
.pg-stat-row{display:flex;gap:0;margin-bottom:1.5rem;border:1px solid var(--pg-border);border-radius:6px;overflow:hidden}
.pg-stat-item{flex:1;text-align:center;padding:18px 14px;background:var(--pg-white);border-right:1px solid var(--pg-border)}.pg-stat-item:last-child{border-right:none}
.pg-stat-num{font-family:'Maven Pro',sans-serif;font-size:1.6rem;font-weight:700;color:var(--pg-blue-dark);line-height:1}
.pg-stat-label{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--pg-text-light);margin-top:4px}
#footer img.footer-logo{height:36px;margin-bottom:10px;opacity:.6;transition:opacity .2s}#footer img.footer-logo:hover{opacity:1}
@media(max-width:768px){.pg-hero{padding:28px 20px}.pg-hero h1{font-size:1.4rem}.pg-hero-stats{gap:20px}.pg-features{grid-template-columns:1fr 1fr}.pg-posts-grid{grid-template-columns:1fr}.pg-stat-row{flex-direction:column}.pg-stat-item{border-right:none;border-bottom:1px solid var(--pg-border)}.pg-stat-item:last-child{border-bottom:none}.pg-admin-bar{flex-direction:column;text-align:center}}
@media(max-width:480px){.pg-features{grid-template-columns:1fr}}
</style>
<meta property="og:title" content="Azerbaijan PostgreSQL User Group (AZERPUG)">
<meta property="og:description" content="Join the Azerbaijan PostgreSQL User Group. Open-source community for PostgreSQL developers, DBAs, and enthusiasts in Azerbaijan. Founded 2018.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://postgresql.az/">
<meta property="og:site_name" content="Azerbaijan PostgreSQL User Group (AZERPUG)">
<meta property="og:image" content="https://postgresql.az/pict/smal.png">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Azerbaijan PostgreSQL User Group (AZERPUG)">
<meta name="twitter:description" content="Join the Azerbaijan PostgreSQL User Group. Open-source community for PostgreSQL developers, DBAs, and enthusiasts in Azerbaijan. Founded 2018.">
<link rel="canonical" href="https://postgresql.az/">
<link rel="alternate" type="application/rss+xml" title="Azerbaijan PostgreSQL User Group Blog RSS" href="/feed.xml">
</head>
<body>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NDMJ7KJ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<div class="container-fluid"><div class="row justify-content-md-center"><div class="col">
<nav class="navbar fixed-top navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand p-0" aria-label="AZERPUG Home" href="/"><img class="logo" src="/pict/smal.png" alt="AZERPUG"></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#pgNavbar"><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="pgNavbar"><ul class="navbar-nav mr-auto">
<li class="nav-item p-2"><a href="/" data-i18n="nav.home">Home</a></li><li class="nav-item p-2"><a href="/blogs/" data-i18n="nav.blog">Blog Posts</a></li><li class="nav-item p-2"><a href="/events/" data-i18n="nav.events">Events</a></li><li class="nav-item p-2"><a href="/registration/" data-i18n="nav.registration">Registration</a></li><li class="nav-item p-2"><a href="/members/" data-i18n="nav.members">Members</a></li><li class="nav-item p-2"><a href="/community/" data-i18n="nav.community">Global Community</a></li><li class="nav-item p-2"><a href="/profile/" data-i18n="nav.profile">My Profile</a></li><li class="nav-item p-2 dropdown">
<a href="/about/" class="dropdown-toggle" data-toggle="dropdown" data-i18n="nav.about">About</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="/about/" data-i18n="nav.about">About</a>
<a class="dropdown-item" href="/sponsors/" data-i18n="nav.sponsors">Sponsors</a>
<a class="dropdown-item" href="/faq/" data-i18n="nav.faq">FAQ</a>
<a class="dropdown-item" href="/gallery/" data-i18n="nav.gallery">Gallery</a>
<a class="dropdown-item" href="/contact/" data-i18n="nav.contact">Contact</a>
<a class="dropdown-item" href="/contribute/" data-i18n="nav.contribute">Contribute</a>
<a class="dropdown-item" href="/committees/" data-i18n="nav.committees">Committees</a>
<a class="dropdown-item" href="/extensions/" data-i18n="nav.extensions">Extensions & Tools</a>
<a class="dropdown-item" href="/knowledge-base/" data-i18n="nav.kb">Knowledge Base</a>
<a class="dropdown-item" href="/coc/" data-i18n="nav.coc">Code of Conduct</a>
</div>
</li>
</ul></div>
</nav>
</div></div>
<div class="pg-page-wrapper">
<!-- Hero Banner — adapts to login state -->
<div class="pg-hero" id="heroBanner">
<h1 id="heroTitle" data-i18n="home.title">Azerbaijan PostgreSQL User Group</h1>
<div class="subtitle" id="heroSubtitle" data-i18n="home.subtitle">The open-source community for PostgreSQL enthusiasts in Azerbaijan</div>
<div class="subtitle-az" id="heroSubtitleAz" data-i18n="home.subtitle_az">Azərbaycan PostgreSQL İstifadəçiləri Qrupu</div>
<div class="pg-hero-actions" id="heroActions">
<a href="/registration/" class="pg-hero-btn pg-hero-btn-primary"><i class="fas fa-user-plus"></i> <span data-i18n="home.join">Join the Community</span></a>
<a href="/login/" class="pg-hero-btn pg-hero-btn-outline"><i class="fas fa-sign-in-alt"></i> <span data-i18n="home.signin">Sign In</span></a>
</div>
<div class="pg-hero-stats">
<div><div class="pg-hero-stat-num" id="statMembers">—</div><div class="pg-hero-stat-label" data-i18n="home.members">Members</div></div>
<div><div class="pg-hero-stat-num" id="statPosts">—</div><div class="pg-hero-stat-label" data-i18n="home.blogposts">Blog Posts</div></div>
<div><div class="pg-hero-stat-num">2018</div><div class="pg-hero-stat-label" data-i18n="home.founded">Founded</div></div>
<div><div class="pg-hero-stat-num"><i class="fas fa-globe" style="font-size:1.4rem"></i></div><div class="pg-hero-stat-label" data-i18n="home.opensource">Open Source</div></div>
</div>
</div>
<!-- Admin Bar (only for admins) -->
<div class="pg-admin-bar" id="adminBar" style="display:none;">
<div class="pg-admin-bar-text"><i class="fas fa-shield-alt"></i> <strong id="pendingCount">0</strong> posts pending review</div>
<a href="/admin/" class="pg-admin-btn"><i class="fas fa-cog"></i> Admin Panel</a>
</div>
<!-- Features Grid -->
<div class="pg-features">
<a href="/blogs/" class="pg-feature"><div class="pg-feature-icon" style="background:#336791"><i class="fas fa-pen"></i></div><h3 data-i18n="feat.blog">Blog Posts</h3><p data-i18n="feat.blog_desc">Read and write articles about PostgreSQL — tutorials, tips, and real-world experiences</p></a>
<a href="/events/" class="pg-feature"><div class="pg-feature-icon" style="background:#e65100"><i class="fas fa-calendar-alt"></i></div><h3 data-i18n="feat.events">Events & Meetups</h3><p data-i18n="feat.events_desc">Join workshops, meetups, webinars, and conferences with the community</p></a>
<a href="/members/" class="pg-feature"><div class="pg-feature-icon" style="background:#2e7d32"><i class="fas fa-users"></i></div><h3 data-i18n="feat.members">Community Members</h3><p data-i18n="feat.members_desc">Connect with PostgreSQL professionals, developers, and DBAs in Azerbaijan</p></a>
<a href="/resources/" class="pg-feature"><div class="pg-feature-icon" style="background:#7b1fa2"><i class="fas fa-book-open"></i></div><h3 data-i18n="feat.resources">Resources</h3><p data-i18n="feat.resources_desc">Curated tutorials, books, tools, and courses for learning PostgreSQL</p></a>
<a href="/jobs/" class="pg-feature"><div class="pg-feature-icon" style="background:#c62828"><i class="fas fa-briefcase"></i></div><h3 data-i18n="feat.jobs">Job Board</h3><p data-i18n="feat.jobs_desc">Find PostgreSQL-related jobs in Azerbaijan and remote positions</p></a>
<a href="/community/" class="pg-feature"><div class="pg-feature-icon" style="background:#1565c0"><i class="fas fa-globe"></i></div><h3 data-i18n="feat.community">Global Community</h3><p data-i18n="feat.community_desc">Connect with the worldwide PostgreSQL ecosystem and organizations</p></a>
<a href="/contact/" class="pg-feature"><div class="pg-feature-icon" style="background:#00838f"><i class="fas fa-comment-dots"></i></div><h3 data-i18n="feat.feedback">Feedback</h3><p data-i18n="feat.feedback_desc">Share your thoughts, suggestions, and ideas to help us improve the community</p></a>
<a href="/contribute/" class="pg-feature"><div class="pg-feature-icon" style="background:#2e7d32"><i class="fas fa-hands-helping"></i></div><h3 data-i18n="feat.contribute">Contribute to Local Community</h3><p data-i18n="feat.contribute_desc">Volunteer, organize events, write content, and help grow PostgreSQL in Azerbaijan</p></a>
<a href="/committees/" class="pg-feature"><div class="pg-feature-icon" style="background:#283593"><i class="fas fa-users-cog"></i></div><h3 data-i18n="feat.committees">Committees</h3><p data-i18n="feat.committees_desc">Meet AZERPUG's four governing committees — Code of Conduct, Program, Organizing, Advocacy — and apply to join</p></a>
<a href="/extensions/" class="pg-feature"><div class="pg-feature-icon" style="background:#1f2937"><i class="fas fa-puzzle-piece"></i></div><h3 data-i18n="feat.extensions">Extensions & Tools</h3><p data-i18n="feat.extensions_desc">Open-source PostgreSQL extensions, CLIs, and developer tools built by AZERPUG members — browse, star, and submit your own</p></a>
<a href="/knowledge-base/" class="pg-feature"><div class="pg-feature-icon" style="background:#00695c"><i class="fas fa-lightbulb"></i></div><h3 data-i18n="feat.kb">Knowledge Base</h3><p data-i18n="feat.kb_desc">PostgreSQL best practices, how-to guides, performance tips, and hard-won lessons shared by the community</p></a>
</div>
<!-- Our Mission -->
<div class="pg-section-title"><i class="fas fa-bullseye"></i> <span data-i18n="mission.title">Our Mission</span></div>
<div style="background:var(--pg-white);border:1px solid var(--pg-border);border-radius:4px;padding:24px;margin-bottom:1.5rem;">
<p style="font-size:.92rem;line-height:1.75;color:var(--pg-text);margin:0 0 12px;" data-i18n="mission.p1">Azerbaijan PostgreSQL User Group exists to grow and strengthen the PostgreSQL community in Azerbaijan. We believe that knowledge is most powerful when it's shared freely, and that open-source technology is the foundation of innovation.</p>
<p style="font-size:.92rem;line-height:1.75;color:var(--pg-text);margin:0 0 12px;" data-i18n="mission.p2">Our mission is to provide a platform where anyone — from curious beginners to seasoned database experts — can learn, share, and collaborate around PostgreSQL. We organize meetups, publish educational content, and connect professionals who work with the world's most advanced open-source relational database.</p>
<p style="font-size:.92rem;line-height:1.75;color:var(--pg-text);margin:0;" data-i18n="mission.p3">As an open community, our community has no hierarchy — every registered member is an equal participant. We welcome developers, DBAs, students, IT managers, and anyone interested in PostgreSQL to join us and contribute to the community.</p>
</div>
<!-- Community Values -->
<div class="pg-section-title"><i class="fas fa-heart"></i> <span data-i18n="values.title">Community Values</span></div>
<div class="pg-features" style="margin-bottom:2rem;">
<div class="pg-feature" style="cursor:default;"><div class="pg-feature-icon" style="background:#336791"><i class="fas fa-lock-open"></i></div><h3 data-i18n="values.opensource">Open Source</h3><p data-i18n="values.opensource_desc">We champion open-source software and the collaborative development model that makes PostgreSQL great.</p></div>
<div class="pg-feature" style="cursor:default;"><div class="pg-feature-icon" style="background:#2e7d32"><i class="fas fa-equals"></i></div><h3 data-i18n="values.equality">Equality</h3><p data-i18n="values.equality_desc">Every member has an equal voice. There is no hierarchy — we grow together as a flat, open community.</p></div>
<div class="pg-feature" style="cursor:default;"><div class="pg-feature-icon" style="background:#e65100"><i class="fas fa-graduation-cap"></i></div><h3 data-i18n="values.knowledge">Knowledge Sharing</h3><p data-i18n="values.knowledge_desc">We learn from each other through blog posts, meetups, workshops, and mentorship.</p></div>
<div class="pg-feature" style="cursor:default;"><div class="pg-feature-icon" style="background:#7b1fa2"><i class="fas fa-hands-helping"></i></div><h3 data-i18n="values.inclusivity">Inclusivity</h3><p data-i18n="values.inclusivity_desc">Everyone is welcome regardless of experience level, background, or profession.</p></div>
</div>
<!-- Latest Blog Posts -->
<div class="pg-section-title"><i class="fas fa-newspaper"></i> <span data-i18n="home.latest_posts">Latest Blog Posts</span></div>
<div id="blogPosts" class="pg-posts-grid"></div>
<!-- Community Stats -->
<div class="pg-section-title"><i class="fas fa-chart-bar"></i> <span data-i18n="home.community_stats">Community</span></div>
<div class="pg-stat-row" style="margin-bottom:2rem;">
<div class="pg-stat-item"><div class="pg-stat-num" id="statMembersBottom">—</div><div class="pg-stat-label">Members</div></div>
<div class="pg-stat-item"><div class="pg-stat-num" id="statPostsBottom">—</div><div class="pg-stat-label">Blog Posts</div></div>
<div class="pg-stat-item"><div class="pg-stat-num" id="statOrgs">—</div><div class="pg-stat-label">Organizations</div></div>
</div>
</div>
<footer id="footer"><div class="container">
<a href="/"><img class="footer-logo" src="/pict/smal.png" alt="AZERPUG"></a><br/>
<div style="margin-bottom:12px;"><a href="https://www.facebook.com/groups/www.postgresql.az" target="_blank" rel="noopener" style="margin:0 6px;color:#515151;font-size:1.1rem;" title="Facebook" aria-label="Facebook Group"><i class="fab fa-facebook"></i></a> <a href="https://github.com/valehdba/postgresql.az" target="_blank" rel="noopener" style="margin:0 6px;color:#515151;font-size:1.1rem;" title="GitHub" aria-label="our GitHub Repository"><i class="fab fa-github"></i></a> <a href="https://www.linkedin.com/groups/17977044/" target="_blank" rel="noopener" style="margin:0 6px;color:#515151;font-size:1.1rem;" title="LinkedIn" aria-label="LinkedIn Group"><i class="fab fa-linkedin"></i></a> <a href="https://t.me/postgresqlaz" target="_blank" rel="noopener" style="margin:0 6px;color:#515151;font-size:1.1rem;" title="Telegram" aria-label="Telegram Group"><i class="fab fa-telegram-plane"></i></a> <a href="https://www.youtube.com/@postgresqlaz" target="_blank" rel="noopener" style="margin:0 6px;color:#515151;font-size:1.1rem;" title="YouTube" aria-label="YouTube Channel"><i class="fab fa-youtube"></i></a></div>
<a href="/about/privacypolicy/" data-i18n="footer.privacy">Privacy policy</a> | <a href="/about/website/" data-i18n="footer.website">About the website</a> | <a href="/coc/" data-i18n="footer.coc">Code of Conduct</a><br/>
Copyright © 2018-2025 Azerbaijan PostgreSQL User Group (AZERPUG)
</div></footer>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script src="/js/navbar-auth.js"></script>
<script src="/js/lang.js"></script>
<script>
var SB='https://qlyqwwhimwfcvuqdrxov.supabase.co';
var KEY='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFseXF3d2hpbXdmY3Z1cWRyeG92Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzQxMjg2ODYsImV4cCI6MjA4OTcwNDY4Nn0.6MKz72wGwthRL8hs-Iv3L9Iw_W4DdGh3UjrwcagtKfM';
var user=null;try{user=JSON.parse(sessionStorage.getItem('azerpug_user'));}catch(e){}
function esc(t){if(!t)return'';var d=document.createElement('div');d.textContent=t;return d.innerHTML}
// Personalize hero if logged in
if(user&&user.id){
document.getElementById('heroTitle').textContent='Xoş gəldiniz, '+user.first_name+'!';
document.getElementById('heroSubtitle').textContent="You're part of the Azerbaijan PostgreSQL User Group community.";
document.getElementById('heroSubtitleAz').textContent=new Date().toLocaleDateString('en-GB',{weekday:'long',day:'numeric',month:'long',year:'numeric'});
document.getElementById('heroActions').innerHTML=
'<a href="/profile/" class="pg-hero-btn pg-hero-btn-primary"><i class="fas fa-user"></i> <span data-i18n="home.myprofile">My Profile</span></a>'+
'<a href="/blogs/#editor" class="pg-hero-btn pg-hero-btn-outline"><i class="fas fa-pen"></i> <span data-i18n="home.writepost">Write a Post</span></a>'+
'<a href="/events/" class="pg-hero-btn pg-hero-btn-outline"><i class="fas fa-calendar-alt"></i> Events</a>'+
'<a href="/profile/#mailbox" class="pg-hero-btn pg-hero-btn-outline" style="position:relative;"><i class="fas fa-envelope"></i> Mailbox<span id="heroMailboxBadge" style="display:none;position:absolute;top:-8px;right:-8px;background:#dc3545;color:#fff;font-size:.65rem;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:none;align-items:center;justify-content:center;padding:0 5px;"></span></a>';
if(user.is_admin){document.getElementById('adminBar').style.display='flex';loadAdminPending();}
loadUnreadCount();
}
async function loadUnreadCount(){
try{
var badge=document.getElementById('heroMailboxBadge');
if(!badge)return;
if(user.is_admin){
// Admin: show total unread contact messages
var r=await fetch(SB+'/rest/v1/rpc/admin_get_stats',{method:'POST',headers:{'Content-Type':'application/json','apikey':KEY,'Authorization':'Bearer '+KEY},body:JSON.stringify({p_admin_id:user.id})});
if(r.ok){var s=await r.json();var count=s.unread_messages||0;if(count>0){badge.textContent=count;badge.style.display='flex';}else{badge.style.display='none';}}
}else{
// User: show unread replies
var r=await fetch(SB+'/rest/v1/rpc/get_my_unread_count',{method:'POST',headers:{'Content-Type':'application/json','apikey':KEY,'Authorization':'Bearer '+KEY},body:JSON.stringify({p_member_id:user.id})});
if(r.ok){var count=await r.json();if(count>0){badge.textContent=count;badge.style.display='flex';}else{badge.style.display='none';}}
}
}catch(e){}
}
async function loadAdminPending(){
try{var r=await fetch(SB+'/rest/v1/rpc/admin_get_stats',{method:'POST',headers:{'Content-Type':'application/json','apikey':KEY,'Authorization':'Bearer '+KEY},body:JSON.stringify({p_admin_id:user.id})});
if(r.ok){var s=await r.json();document.getElementById('pendingCount').textContent=s.pending_posts||0;if(!s.pending_posts)document.getElementById('adminBar').style.display='none';}}catch(e){}
}
// Load posts
async function loadPosts(){
try{
var r=await fetch(SB+'/rest/v1/public_blog_posts?select=title,slug,published_at,author_first_name,author_last_name,excerpt,content&order=published_at.desc&limit=4',{headers:{'apikey':KEY,'Authorization':'Bearer '+KEY}});
if(!r.ok)throw new Error();var posts=await r.json();
var el=document.getElementById('blogPosts');
if(!posts.length){el.innerHTML='<div class="pg-empty-posts"><i class="fas fa-newspaper"></i>No blog posts yet. <a href="/blogs/#editor">Be the first to write one!</a></div>';return;}
el.innerHTML=posts.map(function(p){
var d=p.published_at?new Date(p.published_at).toLocaleDateString('en-GB',{day:'numeric',month:'short',year:'numeric'}):'';
var ex=p.excerpt||(p.content?p.content.replace(/<[^>]*>/g,'').substring(0,120)+'...':'');
return '<div class="pg-post-card"><h4><a href="/blogs/#post/'+esc(p.slug)+'">'+esc(p.title)+'</a></h4><div class="pg-post-meta"><i class="fas fa-user"></i> '+esc(p.author_first_name)+' '+esc(p.author_last_name)+' · <i class="fas fa-calendar"></i> '+d+'</div><div class="pg-post-excerpt">'+esc(ex)+'</div></div>';
}).join('');
document.getElementById('statPosts').textContent=posts.length;
document.getElementById('statPostsBottom').textContent=posts.length;
}catch(e){
document.getElementById('blogPosts').innerHTML='<div class="pg-empty-posts"><i class="fas fa-newspaper"></i>No blog posts yet.</div>';
}
}
async function loadStats(){
try{
var r=await fetch(SB+'/rest/v1/public_members?select=id,company',{headers:{'apikey':KEY,'Authorization':'Bearer '+KEY}});
if(!r.ok)return;var m=await r.json();
var count=m.length;var orgs=new Set();m.forEach(function(x){if(x.company)orgs.add(x.company.toLowerCase().trim())});
document.getElementById('statMembers').textContent=count;
document.getElementById('statMembersBottom').textContent=count;
document.getElementById('statOrgs').textContent=orgs.size;
}catch(e){}
}
loadPosts();loadStats();
</script>
</body>
</html>