Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-27 07:41:44

0001 {% extends 'base.html' %}
0002 
0003 {% block title %}Account Management{% endblock %}
0004 
0005 {% block content %}
0006 <style>
0007     .account-container {
0008         display: flex;
0009         margin-top: 20px;
0010     }
0011     .account-nav {
0012         width: 200px;
0013         border-right: 1px solid #ddd;
0014         padding-right: 20px;
0015     }
0016     .account-nav ul {
0017         list-style: none;
0018         padding: 0;
0019         margin: 0;
0020     }
0021     .account-nav li {
0022         padding: 12px 15px;
0023         cursor: pointer;
0024         border-radius: 5px;
0025         margin-bottom: 5px;
0026     }
0027     .account-nav li:hover {
0028         background-color: #f0f0f0;
0029     }
0030     .account-nav li.active {
0031         background-color: #007bff;
0032         color: white;
0033     }
0034     .account-content {
0035         padding-left: 20px;
0036         flex-grow: 1;
0037     }
0038     .panel {
0039         display: none;
0040     }
0041     .panel.active {
0042         display: block;
0043     }
0044 </style>
0045 
0046 <div class="container">
0047     <h2>Account Management</h2>
0048 
0049     <div class="account-container">
0050         <div class="account-nav">
0051             <ul>
0052                 <li class="active" onclick="showPanel(event, 'account')">Account</li>
0053                 <li onclick="showPanel(event, 'change-password')">Change Password</li>
0054             </ul>
0055         </div>
0056 
0057         <div class="account-content">
0058             <div id="account" class="panel active">
0059                 <h3>Account Details</h3>
0060                 <p><strong>Username:</strong> {{ user.username }}</p>
0061                 <p><strong>Email:</strong> {{ user.email|default:'Not set' }}</p>
0062                 <p><strong>Roles:</strong>
0063                     {% if user.is_superuser %}Superuser{% endif %}
0064                     {% if user.is_staff and not user.is_superuser %}Staff{% endif %}
0065                     {% if not user.is_superuser and not user.is_staff %}User{% endif %}
0066                 </p>
0067             </div>
0068 
0069             <div id="change-password" class="panel">
0070                 <h3>Change Password</h3>
0071                 {% if messages %}
0072                     <ul class="messages">
0073                         {% for message in messages %}
0074                             <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
0075                         {% endfor %}
0076                     </ul>
0077                 {% endif %}
0078                 <form method="post" action="{% url 'monitor_app:account' %}">
0079                     {% csrf_token %}
0080                     {{ form.as_p }}
0081                     <button type="submit">Change Password</button>
0082                 </form>
0083             </div>
0084         </div>
0085     </div>
0086 </div>
0087 
0088 <script>
0089 function showPanel(evt, panelId) {
0090     // Hide all panel content
0091     document.querySelectorAll('.panel').forEach(panel => panel.classList.remove('active'));
0092 
0093     // Deactivate all nav items
0094     document.querySelectorAll('.account-nav li').forEach(nav => nav.classList.remove('active'));
0095 
0096     // Show the selected panel and activate the corresponding nav item
0097     document.getElementById(panelId).classList.add('active');
0098     evt.currentTarget.classList.add('active');
0099 }
0100 
0101 document.addEventListener("DOMContentLoaded", function() {
0102     // Check if the password form has errors or success messages
0103     const changePasswordPanel = document.getElementById('change-password');
0104     const hasErrors = changePasswordPanel.querySelector('.errorlist');
0105     const hasMessages = changePasswordPanel.querySelector('.messages');
0106 
0107     if (hasErrors || hasMessages) {
0108         // If so, show the 'Change Password' panel by default
0109         showPanel({currentTarget: document.querySelector('li[onclick*="change-password"]_')}, 'change-password');
0110     } else {
0111         // Otherwise, show the 'Account' panel
0112         showPanel({currentTarget: document.querySelector('li[onclick*="account"]_')}, 'account');
0113     }
0114 });
0115 </script>
0116 {% endblock %}