user settings, users management, project settings, bug fixes

This commit is contained in:
Ivan
2024-01-12 22:05:06 +03:00
parent d0158dad9a
commit 983a579dc8
18 changed files with 2337 additions and 92 deletions

View File

@@ -124,13 +124,23 @@
<nav class="sections">
<a class="selected" href="/projects">Проекты</a>
<a href="/user/settings">Настройки</a>
{{#if IsAdmin}}
<a href="/admin/users">Пользователи</a>
{{/if}}
</nav>
<section class="content-bg">
<div class="account-content">
<input class="search-input" type="text" placeholder="Поиск...">
<div class="projects-list">
<div class="table-search-section">
<input type="text" class="updates-search search-input" placeholder="Поиск...">
{{#if IsAdmin}}
<button id="addProject" class="upload-button"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20">
<path fill="#fff" fill-opacity=".85" d="M0 9.994c0 .594.497 1.078 1.079 1.078H8.92v7.838a1.09 1.09 0 0 0 1.079 1.078 1.1 1.1 0 0 0 1.09-1.078v-7.838h7.831c.582 0 1.079-.484 1.079-1.078a1.1 1.1 0 0 0-1.079-1.09h-7.83V1.078A1.1 1.1 0 0 0 10 0a1.09 1.09 0 0 0-1.079 1.078v7.826H1.08A1.1 1.1 0 0 0 0 9.994Z"/>
</svg>
Добавить проект</button>
{{/if}}
</div> <div class="projects-list">
{{#each Projects}}
@@ -171,7 +181,63 @@
</section>
<form id="projectForm">
<div id="addproject-form-popup-bg" class="form-popup-bg not-main" >
<div class="form-container">
<img src="../../img/xmark.svg" id="btnCloseForm" class="close-button">
<h1>Добавление нового проекта</h1>
<br><br>
<div class="form-cell-wrapper form-textbox">
<label style="position: absolute; top: -25px;" for="addproject-maraku">Относится ли к Maraku</label>
<select type="text" id="addproject-maraku" autocorrect="off" autocapitalize="off" aria-required="true" required="required" spellcheck="false" autocomplete="off" aria-invalid="false">
<option value="false">Нет</option>
<option value="true">Да</option>
</select>
</div>
<div class="form-cell-wrapper form-textbox">
<input type="text" id="addproject-name" autocorrect="off" autocapitalize="off" aria-required="true" required="required" spellcheck="false" class="force-ltr form-textbox-input" autocomplete="off" aria-invalid="false">
<span aria-hidden="true" id="addproject-name-label" class="form-textbox-label form-label-flyout">Название из Gitea</span>
</div>
<div class="form-cell-wrapper form-textbox">
<input type="text" id="addproject-displayname" autocorrect="off" autocapitalize="off" aria-required="true" required="required" spellcheck="false" class="force-ltr form-textbox-input" autocomplete="off" aria-invalid="false">
<span aria-hidden="true" id="addproject-displayname-label" class="form-textbox-label form-label-flyout">Отображаемое название</span>
</div>
<div class="form-cell-wrapper form-textbox">
<input type="text" id="addproject-domain" autocorrect="off" autocapitalize="off" aria-required="true" required="required" spellcheck="false" class="force-ltr form-textbox-input" autocomplete="off" aria-invalid="false">
<span aria-hidden="true" id="addproject-domain-label" class="form-textbox-label form-label-flyout">Домен</span>
</div>
<button type="submit" class="form-button" id="sendFeedback">Добавить проект</button>
</div>
</div>
</form>
<script>
function closeForm() {
$('.form-popup-bg').removeClass('is-visible');
}
$(document).ready(function($) {
$('#addProject').on('click', function(event) {
event.preventDefault();
$('#addproject-form-popup-bg').addClass('is-visible');
});
$('#addproject-form-popup-bg').on('click', function(event) {
if ($(event.target).is('#addproject-form-popup-bg') || $(event.target).is('#btnCloseForm')) {
event.preventDefault();
$(this).removeClass('is-visible');
}
});
});
function toggleDropdown(dropdownId) {
$('.dropdown-content').not('#' + dropdownId).removeClass('is-visible');
setTimeout(function () {
@@ -214,6 +280,41 @@
}
}
document.addEventListener("DOMContentLoaded", function() {
const projectForm = document.getElementById("projectForm");
const nameInput = document.getElementById("addproject-name");
const displaynameInput = document.getElementById("addproject-displayname");
const domainInput = document.getElementById("addproject-domain");
const marakuInput = document.getElementById("addproject-maraku");
projectForm.addEventListener("submit", async function(event) {
event.preventDefault();
const formData = new FormData();
formData.append("displayname", displaynameInput.value);
formData.append("name", nameInput.value);
formData.append("domain", domainInput.value);
formData.append("maraku", marakuInput.value);
// Отправляем запрос на сервер для авторизации
const response = await fetch("{{API_SERVER}}/project", {
method: "POST",
headers: {
"Authorization": getCookie("token"),
},
body: formData,
});
if (response.status === 201) {
const data = await response.json();
location.reload();
} else {
alert("Ошибка загрузки");
}
});
});
</script>
</body>