Changeset 79fff4f for interfejs/client-dashboard.html
- Timestamp:
- 02/22/26 22:32:07 (7 months ago)
- Branches:
- finki-main, main
- Children:
- 6fea37e, 81bc7da
- Parents:
- 4dff800
- File:
-
- 1 edited
-
interfejs/client-dashboard.html (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
interfejs/client-dashboard.html
r4dff800 r79fff4f 18 18 <li><a href="products.html">Products</a></li> 19 19 <li><a href="#" id="dashboard-link" class="active">My Dashboard</a></li> 20 <li><a href="change-password.html" class="change-password-btn">🔑 Change Password</a></li> 21 <li><a href="#" id="logout-link">Logout</a></li> 20 22 </ul> 21 23 </nav> … … 96 98 <input type="text" id="new-address" required> 97 99 </div> 98 99 100 <div class="form-row"> 100 101 <div class="form-group"> … … 107 108 </div> 108 109 </div> 109 110 110 <div class="form-group"> 111 111 <label for="new-country">Country *</label> 112 112 <input type="text" id="new-country" required> 113 113 </div> 114 115 114 <div class="form-group checkbox"> 116 115 <input type="checkbox" id="new-is-default"> 117 116 <label for="new-is-default">Set as default address</label> 118 117 </div> 119 120 118 <button type="submit" class="btn-primary">Save Address</button> 121 119 <button type="button" class="btn-secondary" id="cancel-add-address">Cancel</button> … … 158 156 </select> 159 157 </div> 160 161 158 <div class="form-group"> 162 159 <label for="request-problem">Problem Description *</label> 163 160 <textarea id="request-problem" rows="4" required></textarea> 164 161 </div> 165 166 162 <button type="submit" class="btn-primary">Submit Request</button> 167 163 <button type="button" class="btn-secondary" id="cancel-new-request">Cancel</button> … … 262 258 document.addEventListener('DOMContentLoaded', async () => { 263 259 const user = await loadUserData(); 260 264 261 if (!user || user.userType !== 'client') { 265 262 window.location.href = 'index.html'; … … 268 265 269 266 document.getElementById('client-name').textContent = `${user.firstName} ${user.lastName || ''}`; 267 268 // Logout functionality 269 document.getElementById('logout-link').addEventListener('click', async (e) => { 270 e.preventDefault(); 271 await logout(); 272 }); 270 273 271 274 // Load profile data … … 297 300 document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active')); 298 301 document.querySelectorAll('.tab-content').forEach(c => c.classList.remove('active')); 302 299 303 btn.classList.add('active'); 300 304 document.getElementById(`${btn.dataset.tab}-tab`).classList.add('active'); … … 352 356 353 357 const tbody = document.getElementById('orders-list'); 358 354 359 if (data.success && data.orders.length > 0) { 355 360 tbody.innerHTML = data.orders.map(order => { 356 361 const total = order.items ? order.items.reduce((sum, item) => 357 362 sum + (item.price * item.quantity), 0) : 0; 363 358 364 return ` 359 <tr>360 <td>${order.order_num}</td>361 <td>${order.store_name || 'Unknown'}</td>362 <td>${new Date(order.order_date).toLocaleDateString()}</td>363 <td><span class="status-badge status-${order.status}">${order.status}</span></td>364 <td>$${total.toFixed(2)}</td>365 <td>366 <button class="btn-small" onclick="viewOrder('${order.order_num}')">View</button>367 ${order.status === 'delivered' ?365 <tr> 366 <td>${order.order_num}</td> 367 <td>${order.store_name || 'Unknown'}</td> 368 <td>${new Date(order.order_date).toLocaleDateString()}</td> 369 <td><span class="status-badge status-${order.status}">${order.status}</span></td> 370 <td>$${total.toFixed(2)}</td> 371 <td> 372 <button class="btn-small" onclick="viewOrder('${order.order_num}')">View</button> 373 ${order.status === 'delivered' ? 368 374 `<button class="btn-small" onclick="reviewOrder('${order.order_num}')">Review</button>` : ''} 369 </td>370 </tr>371 `;375 </td> 376 </tr> 377 `; 372 378 }).join(''); 373 379 } else { … … 383 389 // This would need a separate API endpoint 384 390 document.getElementById('addresses-list').innerHTML = ` 385 <div class="address-card">386 <p><strong>Default Address:</strong></p>387 <p>st. Center num.10, Skopje 1000, North Macedonia</p>388 <button class="btn-small">Edit</button>389 <button class="btn-small" style="background: var(--danger);">Delete</button>390 </div>391 `;391 <div class="address-card"> 392 <p><strong>Default Address:</strong></p> 393 <p>st. Center num.10, Skopje 1000, North Macedonia</p> 394 <button class="btn-small">Edit</button> 395 <button class="btn-small" style="background: var(--danger);">Delete</button> 396 </div> 397 `; 392 398 } 393 399
Note:
See TracChangeset
for help on using the changeset viewer.
