PageSourceSearch

https://parentportal-6c301.web.app/

html parentportal-6c301.web.app collected 2026-10-03 12:32:23 UTC 15,068 bytes, 251 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>Parent Portal</title>
7    <link rel="preconnect" href="https://fonts.googleapis.com">
8    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9    <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,600;1,700&family=Fraunces:opsz,[email protected],700;9..144,900&display=swap" rel="stylesheet">
10    <link rel="stylesheet" href="css/styles.css">
11    <!-- Firebase SDK -->
12    
12<script src="https://www.gstatic.com/firebasejs/9.22.1/firebase-app-compat.js"></script>
12
13    
13<script src="https://www.gstatic.com/firebasejs/9.22.1/firebase-app-check-compat.js"></script>
13
14    
14<script src="https://www.gstatic.com/firebasejs/9.22.1/firebase-auth-compat.js"></script>
14
15    
15<script src="https://www.gstatic.com/firebasejs/9.22.1/firebase-database-compat.js"></script>
15
16    
16<script src="https://www.gstatic.com/firebasejs/9.22.1/firebase-analytics-compat.js"></script>
16
17
18    <!-- Favicon and App Icons -->
19    <link rel="apple-touch-icon" sizes="180x180" href="icons/apple-touch-icon.png">
20    <link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png">
21    <link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
22    <link rel="icon" type="image/x-icon" href="icons/favicon.ico">
23    <!-- Safari pinned tab (mask-icon): SVG preferred, fallback to PNG if needed -->
24    <link rel="mask-icon" href="icons/logo.png" color="#5bbad5">
25    <meta name="msapplication-TileColor" content="#2b5797">
26    <meta name="theme-color" content="#ffffff">
27</head>
28<body>
29    <!-- Global Topbar (persistent across the whole site) -->
30    <header class="topbar" id="globalTopbar">
31        <div class="topbar-left">
32            <button type="button" class="brand" id="globalBrandBtn" aria-label="Home">
33                <div class="brand-logo">
34                    <img src="icons/ptc-logo.webp" alt="LISA Logo">
35                </div>
36            </button>
37        </div>
38        <div class="topbar-right">
39            <div class="social-icons-group">
40                <a href="https://www.facebook.com/LISAAcademy/" class="nav-icon-btn" aria-label="Facebook" target="_blank" rel="noopener">
41                    <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg>
42                </a>
43                <a href="https://www.instagram.com/lisaacademyschools/?hl=en" class="nav-icon-btn" aria-label="Instagram" target="_blank" rel="noopener">
44                    <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="2" y="2" width="20" height="20" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1.5" fill="currentColor" stroke="none"/></svg>
45                </a>
46                <a href="https://lisaacademy.org" class="nav-icon-btn" aria-label="Website" target="_blank" rel="noopener">
47                    <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
48                </a>
49            </div>
50            <div class="lang-switch">
51                <button type="button" class="lang-btn active">EN</button>
52                <span class="lang-divider">|</span>
53                <button type="button" class="lang-btn">ES</button>
54            </div>
55            <div class="topbar-user-info" id="topbarUserInfo" style="display: none;">
56                <span class="user-avatar" id="userAvatar">--</span>
57                <span class="user-text">
58                    <span class="user-label">Parent</span>
59                    <span class="user-name" id="userEmail"></span>
60                </span>
61                <button type="button" id="logoutBtn">Logout</button>
62            </div>
63        </div>
64    </header>
65
66    <!-- Login Section -->
67    <div id="loginSection" class="section login-section">
68        <div class="login-card">
69            <div class="login-layout">
70
71                <!-- Left: sign in / sign up form -->
72                <div class="login-left">
73                    <form id="loginForm" class="auth-form">
74                        <div class="auth-head">
75                            <span class="auth-eyebrow">Parent Portal</span>
76                            <h1 class="auth-title"><span class="hl">Sign in</span></h1>
77                            <p class="muted">Sign in to view your child's discipline points and schedule conferences.</p>
78                        </div>
79                        <div class="sf-cell">
80                            <label for="email">Email address</label>
81                            <input type="email" id="email" placeholder="[email protected]" autocomplete="email" required>
82                        </div>
83                        <div class="sf-cell">
84                            <div class="sf-label-row">
85                                <label for="password">Password</label>
86                                <a href="#" id="forgotPasswordLink" class="forgot-password-link">Forgot password?</a>
87                            </div>
88                            <input type="password" id="password" placeholder="••••••••" autocomplete="current-password" required>
89                        </div>
90                        <button type="submit" class="auth-cta"><span class="hl">Continue &rarr;</span></button>
91                        <p class="auth-switch">Don't have an account? <a href="#" id="showSignup">Sign up</a></p>
92                    </form>
93
94                    <!-- Signup Form (hidden by default) -->
95                    <form id="signupForm" class="auth-form" style="display: none;">
96                        <div class="auth-head">
97                            <span class="auth-eyebrow">Parent Portal</span>
98                            <h1 class="auth-title"><span class="hl">Sign up</span></h1>
99                            <p class="muted">Create an account to access your child's dashboard.</p>
100                        </div>
101                        <div class="sf-cell">
102                            <label for="signupEmail">Email address</label>
103                            <input type="email" id="signupEmail" placeholder="[email protected]" autocomplete="email" required>
104                        </div>
105                        <div class="sf-cell">
106                            <label for="signupPassword">Password</label>
107                            <input type="password" id="signupPassword" placeholder="Create a password" autocomplete="new-password" required>
108                        </div>
109                        <button type="submit" class="auth-cta"><span class="hl">Continue &rarr;</span></button>
110                        <p class="auth-switch">Already have an account? <a href="#" id="showLogin">Login</a></p>
111                    </form>
112
113                    <div id="errorMessage" class="error-message"></div>
114                </div>
115
116                <!-- Right: how to sign up -->
117                <div class="login-right">
118                    <div class="auth-info-panel">
119                        <span class="auth-info-eyebrow">How to sign up</span>
120                        <h2 class="auth-info-title">Get set up<br>in <em>minutes</em></h2>
121                        <ul class="auth-steps">
122                            <li class="auth-step">
123                                <span class="as-num">01</span>
124                                <div>
125                                    <strong>Create your account</strong>
126                                    <p>Sign up with your email address and a password.</p>
127                                </div>
128                            </li>
129                            <li class="auth-step">
130                                <span class="as-num">02</span>
131                                <div>
132                                    <strong>Verify your email</strong>
133                                    <p>Click the confirmation link we send to your inbox.</p>
134                                </div>
135                            </li>
136                            <li class="auth-step">
137                                <span class="as-num">03</span>
138                                <div>
139                                    <strong>Sign in</strong>
140                                    <p>Log back in with your verified email and password.</p>
141                                </div>
142                            </li>
143                            <li class="auth-step">
144                                <span class="as-num">04</span>
145                                <div>
146                                    <strong>You're in</strong>
147                                    <p>View discipline points and schedule parent-teacher conferences.</p>
148                                </div>
149                            </li>
150                        </ul>
151                    </div>
152                </div>
153
154            </div>
155        </div>
156    </div>
157
158    <!-- Home Section -->
159    <div id="homeSection" class="section" style="display: none;">
160        <main>
161            <div class="home-container">
162                <div class="home-intro">
163                    <h2>Welcome back</h2>
164                    <p class="home-intro-sub">Choose where you'd like to go.</p>
165                </div>
166                <div class="home-grid">
167                    <button type="button" class="home-box" id="homeDpsBox">
168                        <span class="home-box-icon">
169                            <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="5" y="4" width="14" height="17" rx="2.2" stroke="currentColor" stroke-width="1.6"/><path d="M9 4V3.5C9 2.67157 9.67157 2 10.5 2H13.5C14.3284 2 15 2.67157 15 3.5V4" stroke="currentColor" stroke-width="1.6"/><path d="M8.3 12.3L10.3 14.3L15.7 8.9" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
170                        </span>
171                        <div class="home-box-title">Discipline Points</div>
172                        <div class="home-box-sub">Behavior records &amp; point totals</div>
173                    </button>
174                    <a class="home-box" id="homePtcBox" href="conference.html" style="display: none;">
175                        <span class="home-box-icon">
176                            <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="3.5" y="5" width="17" height="15" rx="2.2" stroke="currentColor" stroke-width="1.6"/><path d="M3.5 9.5H20.5" stroke="currentColor" stroke-width="1.6"/><path d="M8 3V6.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/><path d="M16 3V6.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/><path d="M8.3 14L10.3 16L15.3 11.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
177                        </span>
178                        <div class="home-box-title">Parent-Teacher Conference</div>
179                        <div class="home-box-sub">Schedule time with your child's teacher</div>
180                    </a>
181                </div>
182            </div>
183        </main>
184    </div>
185
186    <!-- Discipline Points Section -->
187    <div id="dpsSection" class="section" style="display: none;">
188        <main>
189            <div class="dashboard-container">
190                <div class="dps-header">
191                    <span class="eyebrow">Behavior Overview</span>
192                    <h2 class="page-heading">Discipline Points</h2>
193                </div>
194
195                <div class="dps-controls">
196                    <div class="student-dropdown" id="studentDropdown">
197                        <button type="button" class="sd-trigger" id="sdTrigger" aria-haspopup="listbox" aria-expanded="false">
198                            <span class="sd-avatar" id="sdAvatar">--</span>
199                            <span class="sd-text">
200                                <span class="sd-label">Student</span>
201                                <span class="sd-value" id="sdValue">Select student…</span>
202                            </span>
203                            <svg class="sd-chevron" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>
204                        </button>
205                        <div class="sd-panel" id="sdPanel" hidden role="listbox" aria-label="Select a student"></div>
206                    </div>
207
208                    <div class="student-dps-tile" id="studentDpsTile">
209                        <span class="dps-tile-icon">
210                            <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.6"/><path d="M8.3 12.3L10.3 14.3L15.7 8.9" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>
211                        </span>
212                        <div class="dps-tile-text">
213                            <span id="studentTotalDPS">0</span>
214                            <label>Total DPS</label>
215                        </div>
216                    </div>
217                </div>
218
219                <!-- Events Table Section -->
220                <section class="events-section">
221                    <div class="table-container">
222                        <table id="eventsTable">
223                            <thead>
224                                <tr>
225                                    <th>Date</th>
226                                    <th>Educator</th>
227                                    <th>Behavior</th>
228                                    <th>Points</th>
229                                    <th>Consequences</th>
230                                </tr>
231                            </thead>
232                            <tbody id="eventsTableBody"></tbody>
233                        </table>
234                    </div>
235                </section>
236            </div>
237        </main>
238    </div>
239
240    <!-- Loading indicator -->
241    <div id="loadingIndicator" class="loading" style="display: none;">
242        <div class="spinner"></div>
243        <p>Loading...</p>
244    </div>
245
246    
246<script src="js/firebase-config.js"></script>
246
247    
247<script src="js/auth.js"></script>
247
248    
248<script src="js/dashboard.js"></script>
248
249    
249<script src="js/app.js"></script>
249
250</body>
251</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.