Ignore:
Timestamp:
02/22/26 22:32:07 (7 months ago)
Author:
Klimentina Efremova <klimentina08642@…>
Branches:
finki-main, main
Children:
6fea37e, 81bc7da
Parents:
4dff800
Message:

Improved employee logging in and changing password

File:
1 edited

Legend:

Unmodified
Added
Removed
  • interfejs/client-dashboard.html

    r4dff800 r79fff4f  
    1818      <li><a href="products.html">Products</a></li>
    1919      <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>
    2022    </ul>
    2123  </nav>
    … …  
    9698            <input type="text" id="new-address" required>
    9799          </div>
    98 
    99100          <div class="form-row">
    100101            <div class="form-group">
    … …  
    107108            </div>
    108109          </div>
    109 
    110110          <div class="form-group">
    111111            <label for="new-country">Country *</label>
    112112            <input type="text" id="new-country" required>
    113113          </div>
    114 
    115114          <div class="form-group checkbox">
    116115            <input type="checkbox" id="new-is-default">
    117116            <label for="new-is-default">Set as default address</label>
    118117          </div>
    119 
    120118          <button type="submit" class="btn-primary">Save Address</button>
    121119          <button type="button" class="btn-secondary" id="cancel-add-address">Cancel</button>
    … …  
    158156            </select>
    159157          </div>
    160 
    161158          <div class="form-group">
    162159            <label for="request-problem">Problem Description *</label>
    163160            <textarea id="request-problem" rows="4" required></textarea>
    164161          </div>
    165 
    166162          <button type="submit" class="btn-primary">Submit Request</button>
    167163          <button type="button" class="btn-secondary" id="cancel-new-request">Cancel</button>
    … …  
    262258  document.addEventListener('DOMContentLoaded', async () => {
    263259    const user = await loadUserData();
     260
    264261    if (!user || user.userType !== 'client') {
    265262      window.location.href = 'index.html';
    … …  
    268265
    269266    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    });
    270273
    271274    // Load profile data
    … …  
    297300        document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
    298301        document.querySelectorAll('.tab-content').forEach(c => c.classList.remove('active'));
     302
    299303        btn.classList.add('active');
    300304        document.getElementById(`${btn.dataset.tab}-tab`).classList.add('active');
    … …  
    352356
    353357      const tbody = document.getElementById('orders-list');
     358
    354359      if (data.success && data.orders.length > 0) {
    355360        tbody.innerHTML = data.orders.map(order => {
    356361          const total = order.items ? order.items.reduce((sum, item) =>
    357362                  sum + (item.price * item.quantity), 0) : 0;
     363
    358364          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' ?
    368374                  `<button class="btn-small" onclick="reviewOrder('${order.order_num}')">Review</button>` : ''}
    369                                 </td>
    370                             </tr>
    371                         `;
     375                            </td>
     376                        </tr>
     377                    `;
    372378        }).join('');
    373379      } else {
    … …  
    383389    // This would need a separate API endpoint
    384390    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        `;
    392398  }
    393399
Note: See TracChangeset for help on using the changeset viewer.