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/admin.html

    r4dff800 r79fff4f  
    1818      <li><a href="products.html">Products</a></li>
    1919      <li><a href="#" id="dashboard-link" class="active">Admin</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>
    … …  
    201203  document.addEventListener('DOMContentLoaded', async () => {
    202204    const user = await loadUserData();
     205
    203206    if (!user || user.userType !== 'admin') {
    204207      window.location.href = 'index.html';
    … …  
    207210
    208211    document.getElementById('admin-name').textContent = user.username || 'Administrator';
     212
     213    // Logout functionality
     214    document.getElementById('logout-link').addEventListener('click', async (e) => {
     215      e.preventDefault();
     216      await logout();
     217    });
    209218
    210219    // Tab switching
    … …  
    213222        document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
    214223        document.querySelectorAll('.tab-content').forEach(c => c.classList.remove('active'));
     224
    215225        btn.classList.add('active');
    216226        document.getElementById(`${btn.dataset.tab}-tab`).classList.add('active');
    … …  
    271281
    272282      const tbody = document.getElementById('users-list');
     283
    273284      if (data.success && data.users.length > 0) {
    274285        tbody.innerHTML = data.users.map(user => `
    275                         <tr>
    276                             <td>${user.id || user.client_id || 'N/A'}</td>
    277                             <td>${user.firstName || user.first_name || user.username || 'N/A'} ${user.lastName || user.last_name || ''}</td>
    278                             <td>${user.email || 'N/A'}</td>
    279                             <td><span class="status-badge status-${user.user_type || user.userType || 'unknown'}">${user.user_type || user.userType || 'unknown'}</span></td>
    280                             <td>
    281                                 <button class="btn-small" onclick="viewUser('${user.id || user.client_id}')">View</button>
    282                             </td>
    283                         </tr>
    284                     `).join('');
     286                    <tr>
     287                        <td>${user.id || user.client_id || 'N/A'}</td>
     288                        <td>${user.firstName || user.first_name || user.username || 'N/A'} ${user.lastName || user.last_name || ''}</td>
     289                        <td>${user.email || 'N/A'}</td>
     290                        <td><span class="status-badge status-${user.user_type || user.userType || 'unknown'}">${user.user_type || user.userType || 'unknown'}</span></td>
     291                        <td>
     292                            <button class="btn-small" onclick="viewUser('${user.id || user.client_id}')">View</button>
     293                        </td>
     294                    </tr>
     295                `).join('');
    285296      } else {
    286297        tbody.innerHTML = '<tr><td colspan="5">No users found</td></tr>';
    … …  
    298309
    299310      const tbody = document.getElementById('stores-list');
     311
    300312      if (data.success && data.stores.length > 0) {
    301313        tbody.innerHTML = data.stores.map(store => `
    302                         <tr>
    303                             <td>${store.store_id}</td>
    304                             <td>${store.name}</td>
    305                             <td>${store.store_email}</td>
    306                             <td>${store.rating || '0.0'}</td>
    307                             <td>
    308                                 <button class="btn-small" onclick="viewStore('${store.store_id}')">View</button>
    309                             </td>
    310                         </tr>
    311                     `).join('');
     314                    <tr>
     315                        <td>${store.store_id}</td>
     316                        <td>${store.name}</td>
     317                        <td>${store.store_email}</td>
     318                        <td>${store.rating || '0.0'}</td>
     319                        <td>
     320                            <button class="btn-small" onclick="viewStore('${store.store_id}')">View</button>
     321                        </td>
     322                    </tr>
     323                `).join('');
    312324      } else {
    313325        tbody.innerHTML = '<tr><td colspan="5">No stores found</td></tr>';
    … …  
    325337
    326338      const tbody = document.getElementById('orders-list');
     339
    327340      if (data.success && data.orders.length > 0) {
    328341        tbody.innerHTML = data.orders.map(order => `
    329                         <tr>
    330                             <td>${order.order_num}</td>
    331                             <td>${order.first_name} ${order.last_name}</td>
    332                             <td>${order.store_name}</td>
    333                             <td>${new Date(order.order_date).toLocaleDateString()}</td>
    334                             <td><span class="status-badge status-${order.status}">${order.status}</span></td>
    335                             <td>$${parseFloat(order.total || 0).toFixed(2)}</td>
    336                         </tr>
    337                     `).join('');
     342                    <tr>
     343                        <td>${order.order_num}</td>
     344                        <td>${order.first_name} ${order.last_name}</td>
     345                        <td>${order.store_name}</td>
     346                        <td>${new Date(order.order_date).toLocaleDateString()}</td>
     347                        <td><span class="status-badge status-${order.status}">${order.status}</span></td>
     348                        <td>$${parseFloat(order.total || 0).toFixed(2)}</td>
     349                    </tr>
     350                `).join('');
    338351      } else {
    339352        tbody.innerHTML = '<tr><td colspan="6">No orders found</td></tr>';
    … …  
    362375    // Mock report generation
    363376    document.getElementById('report-results').innerHTML = `
    364                 <div class="dashboard-section">
    365                     <h4>Generated Report: ${type}</h4>
    366                     <p>Period: ${start} to ${end}</p>
    367                     <div class="loading">Generating report...</div>
    368                 </div>
    369             `;
     377            <div class="dashboard-section">
     378                <h4>Generated Report: ${type}</h4>
     379                <p>Period: ${start} to ${end}</p>
     380                <div class="loading">Generating report...</div>
     381            </div>
     382        `;
    370383
    371384    // Simulate report generation
    372385    setTimeout(() => {
    373386      document.getElementById('report-results').innerHTML = `
    374                     <div class="dashboard-section">
    375                         <h4>Report Results</h4>
    376                         <p><strong>Total Records:</strong> 42</p>
    377                         <p><strong>Summary:</strong> Sample report data for demonstration</p>
    378                         <button class="btn-small" onclick="downloadReport()">Download Report</button>
    379                     </div>
    380                 `;
     387                <div class="dashboard-section">
     388                    <h4>Report Results</h4>
     389                    <p><strong>Total Records:</strong> 42</p>
     390                    <p><strong>Summary:</strong> Sample report data for demonstration</p>
     391                    <button class="btn-small" onclick="downloadReport()">Download Report</button>
     392                </div>
     393            `;
    381394    }, 1500);
    382395  }
Note: See TracChangeset for help on using the changeset viewer.