<!DOCTYPE html>
<html th:lang="${#locale.language}" th:dir="#{language.direction}" th:data-language="${#locale.toString()}" xmlns:th="http://www.thymeleaf.org">
  <head>
  <th:block th:insert="~{fragments/common :: head(title=#{adminUserSettings.title}, header=#{adminUserSettings.header})}"></th:block>
  </head>

  <body>
    <th:block th:insert="~{fragments/common :: game}"></th:block>
    <div id="page-container">
      <div id="content-wrap">
        <th:block th:insert="~{fragments/navbar.html :: navbar}"></th:block>
        <br><br>
        <div class="container">
          <div class="row justify-content-center">
            <div class="col-md-8">

              <!-- User Settings Title -->
              <h2 class="text-center" th:text="#{adminUserSettings.header}">Admin User Control Settings</h2>
              <div th:if="${param.messageType != null and param.messageType.size() > 0 and (param.messageType[0] == 'deleteCurrentUser' or param.messageType[0] == 'deleteUsernameExists')}" class="alert alert-danger">
                <span th:if="${param.messageType[0] == 'deleteCurrentUser'}" th:text="#{deleteCurrentUserMessage}">Cannot delete currently logged in user.</span>
                <span th:if="${param.messageType[0] == 'deleteUsernameExists'}" th:text="#{deleteUsernameExistsMessage}">The username does not exist and cannot be deleted.</span>
              </div>
              <table class="table">
                <thead>
                  <tr>
                    <th th:text="#{username}">Username</th>
                    <th th:text="#{adminUserSettings.roles}">Roles</th>
                    <th th:text="#{adminUserSettings.actions}">Actions</th>
                  </tr>
                </thead>
                <tbody>
                  <tr th:each="user : ${users}">
                    <td th:text="${user.username}"></td>
                    <td th:text="#{${user.roleName}}"></td>
                    <td>
                      <form th:if="${user.username != currentUsername}" th:action="@{'/api/v1/user/admin/deleteUser/' + ${user.username}}" method="post">
                        <button type="submit" th:text="#{delete}">Delete</button>
                      </form>
                    </td>
                  </tr>
                </tbody>
              </table>

              <h2 th:text="#{adminUserSettings.addUser}">Add New User</h2>
              <div th:if="${param.messageType != null and param.messageType.size() > 0 and (param.messageType[0] == 'usernameExists' or param.messageType[0] == 'invalidUsername')}" class="alert alert-danger">
                <span th:if="${param.messageType[0] == 'usernameExists'}" th:text="#{usernameExistsMessage}">Default message if not found</span>
                <span th:if="${param.messageType[0] == 'invalidUsername'}" th:text="#{invalidUsernameMessage}">Default message if not found</span>
              </div>
              <form action="/api/v1/user/admin/saveUser" method="post">
                <div class="mb-3">
                  <label for="username" th:text="#{username}">Username</label>
                  <input type="text" class="form-control" name="username" pattern="[a-zA-Z0-9]+" th:title="#{adminUserSettings.usernameInfo}" required>
                </div>
                <div class="mb-3">
                  <label for="password" th:text="#{password}">Password</label>
                  <input type="password" class="form-control" name="password" required>
                </div>
                <div class="mb-3">
                  <label for="role" th:text="#{adminUserSettings.role}">Role</label>
                  <select name="role" class="form-control" required>
                    <option th:each="roleDetail : ${roleDetails}" th:value="${roleDetail.key}" th:text="#{${roleDetail.value}}">Role</option>
                  </select>
                </div>
                <div class="mb-3">
                  <input type="checkbox" class="form-check-input" id="forceChange" name="forceChange">
                  <label class="form-check-label" for="forceChange" th:text="#{adminUserSettings.forceChange}">Force user to change username/password on login</label>
                </div>

                <!-- Add other fields as required -->
                <button type="submit" class="btn btn-primary" th:text="#{adminUserSettings.submit}">Save User</button>
              </form>
            </div>
          </div>
        </div>
      </div>
      <th:block th:insert="~{fragments/footer.html :: footer}"></th:block>
    </div>
  </body>
</html>