lab3
20
.eslintrc.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es2021": true
|
||||
},
|
||||
"extends": "airbnb-base",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 12,
|
||||
"sourceType": "module"
|
||||
},
|
||||
"rules": {
|
||||
"quotes": "off",
|
||||
"indent": "off",
|
||||
"no-console": "off",
|
||||
"no-use-before-define": "off",
|
||||
"no-alert": "off",
|
||||
"no-restricted-globals": "off",
|
||||
"quote-props": "off"
|
||||
}
|
||||
}
|
96
abiturient.html
Normal file
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.5em">
|
||||
<h3>Список направлений</h3>
|
||||
<br>
|
||||
<form class="needs-validation" method="get" novalidate style="display: flex;">
|
||||
<label for="code" class="form-label" style="margin-right: 5px">
|
||||
Код:</label>
|
||||
<input class="form-control" type="text" id="code" style="width: 80px; height: 30px;">
|
||||
|
||||
<label for="direction" style="margin-left: 20px; margin-right: 5px;" class="form-label">
|
||||
Направление: </label>
|
||||
<input class="form-control" type="text" id="direction" style="height: 30px;">
|
||||
|
||||
<label for="subjects" style="margin-left: 20px; margin-right: 5px" class="form-label">
|
||||
Предметы:</label>
|
||||
<input class="form-control" type="text" id="subjects" style="height: 30px;">
|
||||
|
||||
<input type="submit" class="btn btn-primary" style="margin-top: 10px; margin-left: 20px; width: 100px;" name="submit" value="Поиск">
|
||||
</form>
|
||||
<br><br>
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Код</td>
|
||||
<td>Наименование направления</td>
|
||||
<td>Требуемые баллы ЕГЭ</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>09.03.04</td>
|
||||
<td>Программная инженерия</td>
|
||||
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>09.03.01</td>
|
||||
<td>Информационная безопасность</td>
|
||||
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>42.03.01</td>
|
||||
<td>Реклама и связи с общественностью</td>
|
||||
<td>Математика (50), Русский язык (50), Иностранный язык(50)/Обществознание(50)/Информатика(50)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
99
add_news.html
Normal file
@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.3em">
|
||||
<h3>Страница администратора</h3>
|
||||
Добавить новость
|
||||
<br>
|
||||
<div class="container px-4 py-2 text-center">
|
||||
<form id="add-news-form" class="needs-validation" action="./news.html" method="get" style="text-align: left; line-height: 1.3em; margin-left: 3%;" novalidate>
|
||||
|
||||
<div class="text-center">
|
||||
<img id="image-preview" src="https://via.placeholder.com/200" width="200px" height="200px" class="rounded rounded-circle" alt="placeholder">
|
||||
</div>
|
||||
|
||||
<label for="title" class="form-label">Заголовок:</label><br>
|
||||
<input id="title" class="form-control" type="text" name="title" placeholder="Заголовок" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="date" class="form-label">Дата:</label><br>
|
||||
<input id="date" class="form-control" type="text" name="date" placeholder="1 сентября, 2023" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="text" class="form-label">Текст новости:</label><br>
|
||||
<textarea id="text" class="form-control" type="text" name="text" cols="3" rows="3" placeholder="2-3 предложения" required></textarea>
|
||||
<br>
|
||||
<br>
|
||||
<label for="tage" class="form-label">Тэги:</label><br>
|
||||
<input id="tage" class="form-control" type="text" name="tage" placeholder="праздник молодёжный" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="image" class="form-label">Изображение:</label>
|
||||
<br>
|
||||
<div class="input-group mb-3">
|
||||
<input type="file" class="form-control" name="image" id="image" accept="image/*">
|
||||
<label class="input-group-text" for="image">Загрузить</label>
|
||||
</div>
|
||||
<br>
|
||||
<button type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script type="module">
|
||||
import validation from "./js/validation.js";
|
||||
import { linesPageForm } from "./js/posts.js"
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
validation();
|
||||
linesPageForm();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
77
admin.html
Normal file
@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: justify; line-height: 2em">
|
||||
<h3 style="text-align: center;">Страница админа</h3>
|
||||
<br>
|
||||
<table id="items-table" class="table table-striped table-hover">
|
||||
<thead>
|
||||
<th scope = "col">№</th>
|
||||
<th scope = "col" class ="w-10">Название</th>
|
||||
<th scope = "col" class = "w-30">Дата</th>
|
||||
<th scope = "col" class = "w-50">Описание</th>
|
||||
<th scope = "col">Теги</th>
|
||||
<th scope = "col"></th>
|
||||
<th scope = "col"></th>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
<br><br>
|
||||
<form action="add_news.html">
|
||||
<button style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить новость</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
<script type = "module">
|
||||
import { drawLinesTable } from "./js/posts.js";
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
drawLinesTable();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
76
contacts.html
Normal file
@ -0,0 +1,76 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id="content" style="text-align: center; line-height: 2em">
|
||||
<h3>Обратная связь</h3>
|
||||
Вы можете задать нам любой вопрос, обратиться с предложением или сообщить о проблеме. Для этого заполните форму ниже.<br>
|
||||
Мы с радостью вам ответим!<br>
|
||||
<form id="contacts-form" class="needs-validation" method="get" style="text-align: left; line-height: 1.3em; margin-left: 3%;" novalidate>
|
||||
<label for="name" class="form-label">Имя:</label><br>
|
||||
<input class="form-control" type="text" name="name" placeholder="Имя" id="name" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="email" class="form-label">Email:</label>
|
||||
<br>
|
||||
<input class="form-control" type="email" name="email" placeholder="Емэйл" id="email" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="theme" class="form-label">Тема:</label>
|
||||
<br>
|
||||
<input class="form-control" type="text" name="theme" placeholder="Тема вопроса" id="theme" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="question" class="form-label">Ваш вопрос:</label>
|
||||
<br>
|
||||
<textarea class="form-control" type="text" name="question" cols="3" rows="7" id="question" required></textarea>
|
||||
<br>
|
||||
<br>
|
||||
<input type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary" name="submit" value="Отправить">
|
||||
</form>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
191
css/style.css
Normal file
@ -0,0 +1,191 @@
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
background-color: #e5e5e5;
|
||||
font-family: Arial;
|
||||
/* для закрепления подвала внизу страницы*/
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#header, #footer {
|
||||
width: 100%;
|
||||
background-color: #012362;
|
||||
text-align: center;
|
||||
font-family: Arial;
|
||||
font-size: 20px;
|
||||
color: white;
|
||||
line-height: 1.5em;
|
||||
padding: 14px 0px 14px 0px;
|
||||
/* для закрепления подвала внизу страницы*/
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
#header a {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#header a:hover {
|
||||
text-shadow: 1px 1px 8px #06c;
|
||||
}
|
||||
|
||||
#logo {
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#logo:hover {
|
||||
filter: drop-shadow(0px 2px 16px #06c);
|
||||
}
|
||||
|
||||
.navbar {
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
color: #012362;
|
||||
font-family: Arial;
|
||||
}
|
||||
|
||||
.navbar-brand, .nav-item {
|
||||
margin-left: 5em;
|
||||
}
|
||||
@media (min-width: 800px) {
|
||||
.navbar-brand, .nav-item {
|
||||
margin-left: 2em;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1280px) {
|
||||
.navbar-brand, .nav-item {
|
||||
margin-left: 6em;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1600px) {
|
||||
.navbar-brand, .nav-item {
|
||||
margin-left: 8em;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1920px) {
|
||||
.navbar-brand, .nav-item {
|
||||
margin-left: 12em;
|
||||
}
|
||||
}
|
||||
@media (min-width: 2100px) {
|
||||
.navbar-brand, .nav-item {
|
||||
margin-left: 17em;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-brand, .nav-link {
|
||||
font-size: 17pt;
|
||||
text-decoration: none;
|
||||
color: #012362;
|
||||
}
|
||||
|
||||
.navbar-brand:hover, .nav-link:hover {
|
||||
color: #f07c41;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Весь контент страницы */
|
||||
#content {
|
||||
width: 80%;
|
||||
margin: 1.5% 10% 1.5% 10%;
|
||||
padding: 30px;
|
||||
padding-left: 5%;
|
||||
padding-right: 5%;
|
||||
background-color: white;
|
||||
color: #012362;
|
||||
font-size: 13pt;
|
||||
text-align: justify;
|
||||
line-height: 15pt;
|
||||
/* для закрепления подвала внизу страницы*/
|
||||
flex: 1 0 auto;
|
||||
}
|
||||
|
||||
/* центр для изображений*/
|
||||
#content img {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
table {
|
||||
font-size: 13pt;
|
||||
border: 2px solid;
|
||||
border-left: 10px solid;
|
||||
border-right: 10px solid;
|
||||
}
|
||||
|
||||
thead {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@media (max-width: 860px) {
|
||||
table {
|
||||
font-size: 2vw;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
}
|
||||
|
||||
#content a{
|
||||
color: #06c;
|
||||
}
|
||||
|
||||
#content a:hover{
|
||||
color: #f07c41;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.input {
|
||||
border: 1.2px solid gainsboro;
|
||||
border-radius: 3px;
|
||||
width: 270px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
@media (min-width: 400px) {
|
||||
.input {
|
||||
width: 220px;
|
||||
}
|
||||
}
|
||||
|
||||
.input-textarea {
|
||||
border: 1.2px solid gainsboro;
|
||||
border-radius: 3px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.input:hover, .input-textarea:hover {
|
||||
border: 1.2px solid #06c;
|
||||
filter: drop-shadow(0px 0px 2px #06c);
|
||||
}
|
||||
|
||||
.input:focus, .input-textarea:focus {
|
||||
outline-width: 0;
|
||||
border: 1.3px solid #012362;
|
||||
}
|
||||
|
||||
.btn {
|
||||
background-color: #012362;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
#footer {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
#footer ul {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#footer li {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
#footer li:not(:last-of-type) {
|
||||
margin-right: 3%;
|
||||
}
|
89
dist/abiturient.html
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
|
||||
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/assets/style-ea88520f.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.5em">
|
||||
<h3>Список направлений</h3>
|
||||
<br>
|
||||
<label for="code">Код: </label>
|
||||
<input class="input" type="text" name="code" id="code" style="width: 80px;">
|
||||
<label for="direction" style="margin-left: 20px;"> Направление:</label>
|
||||
<input class="input" type="text" name="direction" id="direction">
|
||||
<label for="subjects" style="margin-left: 20px;">Предметы:</label>
|
||||
<input class="input" type="text" name="subjects" id="subjects">
|
||||
<input type="submit" class="btn btn-primary" style="margin-top: 10px; margin-left: 20px; width: 100px;" name="submit" value="Поиск">
|
||||
</form>
|
||||
<br><br>
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Код</td>
|
||||
<td>Наименование направления</td>
|
||||
<td>Требуемые баллы ЕГЭ</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>09.03.04</td>
|
||||
<td>Программная инженерия</td>
|
||||
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>09.03.01</td>
|
||||
<td>Информационная безопасность</td>
|
||||
<td>Математика (50), Русский язык (50), Информатика (50)/Физика(50)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>42.03.01</td>
|
||||
<td>Реклама и связи с общественностью</td>
|
||||
<td>Математика (50), Русский язык (50), Иностранный язык(50)/Обществознание(50)/Информатика(50)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
91
dist/add_news.html
vendored
Normal file
@ -0,0 +1,91 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="module" crossorigin src="/assets/add_news-1146ed73.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/validation-959284d8.js">
|
||||
<link rel="stylesheet" href="/assets/validation-dfd4cadb.css">
|
||||
<link rel="stylesheet" href="/assets/style-ea88520f.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.3em">
|
||||
<h3>Страница администратора</h3>
|
||||
Добавить новость
|
||||
<br>
|
||||
<div class="container px-4 py-2 text-center">
|
||||
<form id="add-news-form" class="needs-validation" action="./news.html" method="get" style="text-align: left; line-height: 1.3em; margin-left: 3%;" novalidate>
|
||||
|
||||
<div class="text-center">
|
||||
<img id="image-preview" src="https://via.placeholder.com/200" class="rounded rounded-circle" alt="placeholder">
|
||||
</div>
|
||||
|
||||
<label for="title" class="form-label">Заголовок:</label><br>
|
||||
<input id="title" class="form-control" type="text" name="title" placeholder="Заголовок" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="date" class="form-label">Дата:</label><br>
|
||||
<input id="date" class="form-control" type="text" name="date" placeholder="1 сентября, 2023" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="text" class="form-label">Текст новости:</label><br>
|
||||
<textarea id="text" class="form-control" type="text" name="text" cols="3" rows="7" placeholder="2-3 предложения" required></textarea>
|
||||
<br>
|
||||
<br>
|
||||
<label for="image" class="form-label">Изображение:</label>
|
||||
<br>
|
||||
<div class="input-group mb-3">
|
||||
<input type="file" class="form-control" name="image" id="image" accept="image/*" required>
|
||||
<label class="input-group-text" for="image">Загрузить</label>
|
||||
</div>
|
||||
<br>
|
||||
<button type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
dist/assets/1september-9ac65a17.jpg
vendored
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
dist/assets/Halloween-dcefb2d3.jpg
vendored
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
dist/assets/Students1-ddc3a6e6.jpg
vendored
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
dist/assets/Students2-8684e38a.jpg
vendored
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
dist/assets/Students3-5887bf87.jpg
vendored
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
dist/assets/University-f1dcd661.JPG
vendored
Normal file
After Width: | Height: | Size: 150 KiB |
1
dist/assets/abiturient-5b08b68b.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"abiturient-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
12
dist/assets/add_news-1146ed73.js
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
import{v as w}from"./validation-959284d8.js";/* empty css */const r="http://localhost:8081";function m(e,t,o,a,i){return{id:e,text:t,title:o,date:a,image:i}}async function g(){const e=await fetch(`${r}/news`);if(!e.ok)throw e.statusText;return e.json()}async function p(e){const t=await fetch(`${r}/news/${e}`);if(!t.ok)throw t.statusText;return t.json()}async function h(e,t,o,a){const i=m(0,e,t,o,a),c={method:"POST",body:JSON.stringify(i),headers:{Accept:"application/json","Content-Type":"application/json"}},s=await fetch(`${r}/news`,c);if(!s.ok)throw s.statusText;return s.json()}async function y(e,t,o,a,i){const c=m(e,t,o,a,i),s={method:"PUT",body:JSON.stringify(c),headers:{Accept:"application/json","Content-Type":"application/json"}},l=await fetch(`${r}/news/${e}`,s);if(!l.ok)throw l.statusText;return l.json()}const n={form:document.getElementById("add-news-form"),list:document.getElementById("list-news"),title:document.getElementById("title"),date:document.getElementById("date"),text:document.getElementById("text"),image:document.getElementById("image"),imagePreview:document.getElementById("image-preview")},d="https://via.placeholder.com/200";function v(e){n.list.inserAdjacentHTML(P(e)),console.info("Post was creating")}function P(e){return`
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<img src="${e.image}" class="card-img-top" alt="">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">${e.title}</h5>
|
||||
<p class="card-text"><small class="text-body-secondary">${e.date}</small></p>
|
||||
<p class="card-text">${e.text}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>`}async function u(){if(console.info("Try to load data"),!n.list)return;const e=await g();n.list.innerHTML="",e.forEach(t=>{n.table.appendChild(v(t))})}async function L(e,t,o,a){console.info("Try to add item");const i=await h(e,t,o,a);console.info("Added"),console.info(i),u()}async function b(e,t,o,a){console.info("Try to update item");const i=await y(e,t,o,a);console.info("Updated"),console.info(i),u()}async function f(e){const t=new FileReader;return new Promise((o,a)=>{t.onloadend=()=>{const i=t.result;o(i)},t.onerror=()=>{a(new Error("oops, something went wrong with the file reader."))},t.readAsDataURL(e)})}async function x(){const e=n.image.files[0],t=await f(e);console.info("base64 ",t),n.imagePreview.src=t}async function T(){console.info("linesPageForm");const e=()=>location.assign("/news.html");n.image.addEventListener("change",()=>x());const o=new URLSearchParams(location.search).get("id");if(o)try{const a=await p(o);n.title.value=a.title,n.date.value=a.date,n.text.value=a.text,n.imagePreview.src=a.image?a.image:d}catch{e()}n.form.addEventListener("submit",async a=>{if(console.info("Form onSubmit"),a.preventDefault(),a.stopPropagation(),!n.form.checkValidity())return;let i="";if(n.imagePreview.src!==d){const s=await(await fetch(n.imagePreview.src)).blob();i=await f(s)}o?await b(o,n.text.value,n.title.value,n.date.value):await L(n.text.value,n.title.value,n.date.value,i),e()})}document.addEventListener("DOMContentLoaded",()=>{w(),T()});
|
||||
//# sourceMappingURL=add_news-1146ed73.js.map
|
1
dist/assets/add_news-1146ed73.js.map
vendored
Normal file
1
dist/assets/contacts-5b08b68b.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"contacts-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
BIN
dist/assets/fa-brands-400-3fe890d0.woff2
vendored
Normal file
BIN
dist/assets/fa-brands-400-c7ae37d3.ttf
vendored
Normal file
BIN
dist/assets/fa-regular-400-fdc1f753.ttf
vendored
Normal file
BIN
dist/assets/fa-regular-400-fe69d948.woff2
vendored
Normal file
BIN
dist/assets/fa-solid-900-6d53c706.ttf
vendored
Normal file
BIN
dist/assets/fa-solid-900-d27bc752.woff2
vendored
Normal file
BIN
dist/assets/fa-v4compatibility-4d73f280.ttf
vendored
Normal file
BIN
dist/assets/fa-v4compatibility-7d1c2ce5.woff2
vendored
Normal file
BIN
dist/assets/icpc-6a6ed0d7.jpg
vendored
Normal file
After Width: | Height: | Size: 200 KiB |
BIN
dist/assets/logo-f57f18ed.png
vendored
Normal file
After Width: | Height: | Size: 6.8 KiB |
1
dist/assets/main-5b08b68b.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"main-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
1
dist/assets/news-5b08b68b.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"news-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
2
dist/assets/registration-fe02a00e.js
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
import{v as t}from"./validation-959284d8.js";/* empty css */document.addEventListener("DOMContentLoaded",()=>{t()});
|
||||
//# sourceMappingURL=registration-fe02a00e.js.map
|
1
dist/assets/registration-fe02a00e.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"registration-fe02a00e.js","sources":["../../registration.html?html-proxy&index=1.js"],"sourcesContent":["\n import validation from \"./js/validation.js\";\n\n document.addEventListener('DOMContentLoaded', () => {\n validation();\n });\n "],"names":["validation"],"mappings":"yEAGM,SAAS,iBAAiB,mBAAoB,IAAM,CAChDA,GACV,CAAO"}
|
BIN
dist/assets/robokross-96e78ce5.jpg
vendored
Normal file
After Width: | Height: | Size: 209 KiB |
1
dist/assets/style-79867121.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"style-79867121.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
6
dist/assets/style-ea88520f.css
vendored
Normal file
1
dist/assets/university-5b08b68b.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"university-5b08b68b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
6
dist/assets/validation-959284d8.js
vendored
Normal file
1
dist/assets/validation-959284d8.js.map
vendored
Normal file
5
dist/assets/validation-dfd4cadb.css
vendored
Normal file
73
dist/contacts.html
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
|
||||
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/assets/style-ea88520f.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id="content" style="text-align: center; line-height: 2em">
|
||||
<h3>Обратная связь</h3>
|
||||
Вы можете задать нам любой вопрос, обратиться с предложением или сообщить о проблеме. Для этого заполните форму ниже.<br>
|
||||
Мы с радостью вам ответим!<br>
|
||||
<form id="contacts-form" method="post" style="text-align: left; line-height: 1.3em; margin-left: 3%;">
|
||||
<label for="name">Имя:</label><br>
|
||||
<input class="input" type="text" name="name" placeholder="Имя" id="name"><br>
|
||||
<span id="error-name" style="color: red"></span>
|
||||
<br>
|
||||
<label for="email">Email:</label><br>
|
||||
<input class="input" type="email" name="email" placeholder="Емэйл" id="email"><br>
|
||||
<span id="error-email" style="color: red"></span>
|
||||
<br>
|
||||
<label for="theme">Тема:</label><br>
|
||||
<input class="input" type="text" name="theme" placeholder="Тема вопроса" id="theme"><br>
|
||||
<span id="error-theme" style="color: red"></span>
|
||||
<br>
|
||||
<label for="question">Ваш вопрос:</label><br>
|
||||
<textarea class="input-textarea" type="text" name="question" cols="3" rows="7" id="question"></textarea><br>
|
||||
<span id="error-question" style="color: red"></span>
|
||||
<br>
|
||||
<input type="submit" style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary" name="submit" value="Отправить">
|
||||
</form>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
90
dist/index.html
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
|
||||
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/assets/style-ea88520f.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.7em">
|
||||
<center>
|
||||
Добро пожаловать на сайт<br>
|
||||
<b>Государственного политехнического университета</b>!<br>
|
||||
На нашем сайте вы можете просмотреть <a href="news.html">последние новости</a>, прочитать <a href="university.html">информацию о нас</a>, и многое другое....<br>
|
||||
<br>
|
||||
<div id="carouselExampleCaptions" class="carousel carousel-dark slide">
|
||||
<div class="carousel-indicators">
|
||||
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
|
||||
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="1" aria-label="Slide 2"></button>
|
||||
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="2" aria-label="Slide 3"></button>
|
||||
</div>
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img src="/assets/Students1-ddc3a6e6.jpg" class="d-block w-50" alt="...">
|
||||
<div class="carousel-caption d-none d-md-block">
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="/assets/Students2-8684e38a.jpg" class="d-block w-50" alt="...">
|
||||
<div class="carousel-caption d-none d-md-block">
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="/assets/Students3-5887bf87.jpg" class="d-block w-50" alt="...">
|
||||
<div class="carousel-caption d-none d-md-block">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Previous</span>
|
||||
</button>
|
||||
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Next</span>
|
||||
</button>
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
102
dist/news.html
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
|
||||
|
||||
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<link rel="stylesheet" href="/assets/style-ea88520f.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: justify; line-height: 2em">
|
||||
<h3 style="text-align: center;">Новости университета</h3>
|
||||
<br>
|
||||
<div class="row row-cols-1 row-cols-md-3 g-4">
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<img src="/assets/icpc-6a6ed0d7.jpg" class="card-img-top" alt="...">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Чемпионат ICPC</h5>
|
||||
<p class="card-text"><small class="text-body-secondary">10 ноября, 2023</small></p>
|
||||
<p class="card-text">Студенты выступят на Чемпионате мира по программированию в Северной Евразии.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<img src="/assets/Halloween-dcefb2d3.jpg" class="card-img-top" alt="...">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Хеллоуин</h5>
|
||||
<p class="card-text"><small class="text-body-secondary">31 октября, 2023</small></p>
|
||||
<p class="card-text">На территории университета студенты отпраздновали Хеллоуин.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<img src="/assets/robokross-96e78ce5.jpg" class="card-img-top" alt="...">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Робокросс</h5>
|
||||
<p class="card-text"><small class="text-body-secondary">8 сентября, 2023</small></p>
|
||||
<p class="card-text">Студенты показали свои первые наработки для предстоящего Робокросса. Увиденное впечатляет!</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<img src="/assets/1september-9ac65a17.jpg" class="card-img-top" alt="...">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">День знаний</h5>
|
||||
<p class="card-text"><small class="text-body-secondary">1 сентября, 2023</small></p>
|
||||
<p class="card-text">Университет торжественно отпраздновал День Знаний. На мероприятии присутствовало более 900 абитуриентов.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="list-news"></div>
|
||||
</div>
|
||||
<br><br>
|
||||
<form action="add_news.html">
|
||||
<button style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Добавить новость</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
118
dist/registration.html
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="module" crossorigin src="/assets/registration-fe02a00e.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/validation-959284d8.js">
|
||||
<link rel="stylesheet" href="/assets/validation-dfd4cadb.css">
|
||||
<link rel="stylesheet" href="/assets/style-ea88520f.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.3em">
|
||||
<h3>Регистрация</h3>
|
||||
Регистрация на нашем сайте позволит Вам стать его полноценным участником.<br>
|
||||
Вы сможете просматривать расписание групп, свои оценки и учебный план.
|
||||
В случае возникновения проблем с регистрацией, обратитесь к <a href="contacts.html">администратору</a>.
|
||||
<br><br>
|
||||
<div class="container-xl px-4 py-2 text-center">
|
||||
<form id="registration-form" class="needs-validation" action="./index.html" method="get" novalidate>
|
||||
<div class="row" margin="">
|
||||
<div class="col-lg-6 col-xl-4">
|
||||
<div class="p-3">
|
||||
<label for="name" class="form-label">Имя:</label><br>
|
||||
<input class="form-control" type="text" name="name" placeholder="Имя" id="name" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="email">Email:</label><br>
|
||||
<input class="form-control" type="email" name="email" placeholder="Емэйл" id="email" required>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-xl-4">
|
||||
<div class="p-3">
|
||||
<label for="lastname" class="form-label">Фамилия:</label><br>
|
||||
<input class="form-control" type="text" name="lastname" placeholder="Фамилия" id="lastname" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="pass" class="form-label">Пароль:</label><br>
|
||||
<input class="form-control" type="password" name="pass" placeholder="Пароль" id="pass" required>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-xl-4">
|
||||
<div class="p-3">
|
||||
<label for="birth-year" class="form-label">Дата рождения:</label><br>
|
||||
<input class="form-control" type="date" name="birth-year" placeholder="Год рождения" id="birth-year" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="repass" class="form-label">Проверка пароля:</label><br>
|
||||
<input class="form-control" type="password" name="repass" placeholder="Проверка пароля" id="repass" required>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-14">
|
||||
<div class="form p-3">
|
||||
<h5>Ваш статус:</h5>
|
||||
<input class="form-check-input" type="radio" name="state" id="student" value="Студент" required>
|
||||
<label for="student" style="margin-right: 20px;">Студент</label>
|
||||
<input class="form-check-input" type="radio" name="state" id="teacher" value="Преподаватель" required>
|
||||
<label for="teacher">Преподаватель</label>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<br><br>
|
||||
<div class="col-14">
|
||||
<div class="p-3">
|
||||
<button type="submit" class="btn btn-primary">Зарегистрироваться</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
65
dist/university.html
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
|
||||
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/assets/style-ea88520f.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="/assets/logo-f57f18ed.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: justify; line-height: 2em; text-indent: 25px;">
|
||||
<h3 style="text-align: center;">История ГПУ</h3>
|
||||
<p>29 мая 2001 года решением правительства РФ был создан Государственный политехнический университет. Новый ВУЗ был образован на базе Тольяттинского политехнического института и Тольяттинского филиала Самарского государственного педагогического университета.</p>
|
||||
<p>История Политехнического института начинается с вечернего отделения Куйбышевского индустриального института, созданного при Куйбышевгидросторе в 1951 году. Строительство ГЭС остро нуждалось в квалифицированных инженерах. Руководил факультетом Д.Е. Чуркин, а в 1953 году его сменил к.т.н. В.Н. Зубков.</p>
|
||||
<p>1 сентября 1951 года начались занятия 150 студентов. Первое время преподаватели приезжали из Куйбышева, лекции читали многие инженеры-практики со стройки, и сам начальник КГС И.В. Комзин. На отделении было всего два штатных сотрудника: В.Н. Зубков и А.Э. Лившиц. В 1962 году число сотрудников возросло до 90 человек, 8 из них имели ученую степень кандидатов наук.</p>
|
||||
<p>В 1956 году состоялся первый выпуск инженеров-гидростроителей и инженеров-электриков. Постепенно открывались новые специальности, в 1959 году получили дипломы первые инженеры-механики. В 1961 было открыто дневное обучение.</p>
|
||||
<p>В 1961 году были открыты механический факультет (декан В.Н. Зубков) и химико-электротехнический (декан Б.Н. Рачинский). В 1964 году был создан химико-технологический факультет. В 1966 году были выпущены первые инженеры-технологи химического производства. В 1966 году на трех факультетах обучались 2800 студентов.</p>
|
||||
<p>В октябре 1966 года на базе филиала был образован Тольяттинский политехнический институт. Немалую роль в организации института сыграли потребности в кадрах строящегося ВАЗа, а также наличие материальной базы.</p>
|
||||
<p>Первым ректором нового ВУЗа был назначен профессор, доктор технических наук видный ученый из Куйбышева Арон Наумович Резников. Он сумел привлечь новые квалифицированные кадры и создал современный институт с высоким учебным и научным потенциалом. Были созданы 13 новых кафедр, в том числе единственная в стране кафедра промышленной пайки. Благодаря А.Н. Резникову через 10 лет в ТПИ работали 7 докторов наук и 151 кандидат наук. За это время почти в 2 раза возрос набор студентов, и в 10 раз возросли объемы научных работ. Наиболее успешными были 80-е гг., когда учёные ТПИ осваивали в год около 3 млн. руб.</p>
|
||||
<p>Ежегодно ученые института получали десятки свидетельств на изобретения, всего же со времени создания ТПИ было получено 1134 авторских свидетельства на изобретения.</p>
|
||||
<p>ТГУ – современный инновационный вуз. В 2010 году университет стал победителем конкурса Правительства РФ на Премию качества за 2009 год, дважды – в 2004 и 2011 году ТГУ стал лауреатом конкурса «Европейское качество» в группе «100 лучших вузов России». В 2011 году ТГУ завоевал по итогам конкурса СНГ за достижения в области качества оказания услуг приз «Признание делового совершенства». Ректор ТГУ М.М. Криштал в 2011 г. удостоен звания «Российский лидер качества», награждён дипломом и медалью, такую высокую оценку деятельности дала «Всероссийская организация качества».</p>
|
||||
<p>В 2014 году в составе ТГУ 11 институтов, включая институт военного обучения, 44 кафедры, институт дистанционного обучения.</p>
|
||||
<br>
|
||||
<img src="/assets/University-f1dcd661.JPG" height="250px">
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
BIN
favicon.ico
Normal file
After Width: | Height: | Size: 21 KiB |
90
index.html
Normal file
@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.7em">
|
||||
<center>
|
||||
Добро пожаловать на сайт<br>
|
||||
<b>Государственного политехнического университета</b>!<br>
|
||||
На нашем сайте вы можете просмотреть <a href="news.html">последние новости</a>, прочитать <a href="university.html">информацию о нас</a>, и многое другое....<br>
|
||||
<br>
|
||||
<div id="carouselExampleCaptions" class="carousel carousel-dark slide">
|
||||
<div class="carousel-indicators">
|
||||
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
|
||||
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="1" aria-label="Slide 2"></button>
|
||||
<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="2" aria-label="Slide 3"></button>
|
||||
</div>
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img src="resourses/Students1.jpg" class="d-block w-50" alt="...">
|
||||
<div class="carousel-caption d-none d-md-block">
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="resourses/Students2.jpg" class="d-block w-50" alt="...">
|
||||
<div class="carousel-caption d-none d-md-block">
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="resourses/Students3.jpg" class="d-block w-50" alt="...">
|
||||
<div class="carousel-caption d-none d-md-block">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Previous</span>
|
||||
</button>
|
||||
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Next</span>
|
||||
</button>
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
92
js/posts-rest-api.js
Normal file
@ -0,0 +1,92 @@
|
||||
// модуль для работы с REST API сервера
|
||||
|
||||
// адрес сервера
|
||||
const serverUrl = "http://localhost:8081";
|
||||
|
||||
// функция возвращает объект нужной структуры для отправки на сервер
|
||||
function createLineObject(title, date, text, tage, image) {
|
||||
return {
|
||||
id: 0,
|
||||
title,
|
||||
date,
|
||||
text,
|
||||
tage,
|
||||
image,
|
||||
};
|
||||
}
|
||||
|
||||
// обращение к серверу для получения всех записей (get)
|
||||
export async function getAllLines() {
|
||||
const response = await fetch(`${serverUrl}/news`);
|
||||
if (!response.ok) {
|
||||
throw response.statusText;
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// обращение к серверу для получения записи по первичному ключу (id) (get)
|
||||
// id передается в качестве части пути URL get-запроса
|
||||
export async function getLine(id) {
|
||||
const response = await fetch(`${serverUrl}/news/${id}`);
|
||||
if (!response.ok) {
|
||||
throw response.statusText;
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// обращение к серверу для создания записи (post)
|
||||
// объект отправляется в теле запроса (body)
|
||||
export async function createLine(title, date, text, tage, image) {
|
||||
const itemObject = createLineObject(title, date, text, tage, image);
|
||||
|
||||
const options = {
|
||||
method: "POST",
|
||||
body: JSON.stringify(itemObject),
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
};
|
||||
|
||||
const response = await fetch(`${serverUrl}/news`, options);
|
||||
if (!response.ok) {
|
||||
throw response.statusText;
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// обращение к серверу для обновления записи по id (put)
|
||||
// объект отправляется в теле запроса (body)
|
||||
// id передается в качестве части пути URL get-запроса
|
||||
export async function updateLine(id, title, date, text, tage, image) {
|
||||
const newObject = createLineObject(title, date, text, tage, image);
|
||||
|
||||
const options = {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(newObject),
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
};
|
||||
|
||||
const response = await fetch(`${serverUrl}/news/${id}`, options);
|
||||
if (!response.ok) {
|
||||
throw response.statusText;
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
|
||||
// обращение к серверу для удаления записи по id (delete)
|
||||
// id передается в качестве части пути URL get-запроса
|
||||
export async function deleteLine(id) {
|
||||
const options = {
|
||||
method: "DELETE",
|
||||
};
|
||||
|
||||
const response = await fetch(`${serverUrl}/news/${id}`, options);
|
||||
if (!response.ok) {
|
||||
throw response.statusText;
|
||||
}
|
||||
return response.json();
|
||||
}
|
73
js/posts-ui.js
Normal file
@ -0,0 +1,73 @@
|
||||
// модуль для работы с элементами управления
|
||||
|
||||
// объект для удобного получения элементов
|
||||
// при обращении к атрибуту объекта вызывается
|
||||
// нужная функция для поиска элемента
|
||||
|
||||
export const cntrls = {
|
||||
table: document.querySelector("#items-table tbody"),
|
||||
form: document.getElementById("add-news-form"),
|
||||
list: document.getElementById("list-news"),
|
||||
title: document.getElementById("title"),
|
||||
date: document.getElementById("date"),
|
||||
text: document.getElementById("text"),
|
||||
tage: document.getElementById("tage"),
|
||||
image: document.getElementById("image"),
|
||||
imagePreview: document.getElementById("image-preview"),
|
||||
};
|
||||
|
||||
// Дефолтное превью
|
||||
export const imagePlaceholder = "https://via.placeholder.com/200";
|
||||
|
||||
// функция создает ссылку (a) для таблицы
|
||||
// содержимое тега a заполняется необходимой иконкой (icon)
|
||||
// при нажатии вызывается callback
|
||||
// ссылка "оборачивается" тегом td
|
||||
// <td><a href="#" onclick="callback()"><i class="fa-solid icon"></i></a></td>
|
||||
function createTableAnchor(icon, callback) {
|
||||
const i = document.createElement("i");
|
||||
i.classList.add("fa-solid", icon);
|
||||
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.appendChild(i);
|
||||
a.onclick = (event) => {
|
||||
// чтобы в URL не добавлялась решетка
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
callback();
|
||||
};
|
||||
|
||||
const td = document.createElement("td");
|
||||
td.appendChild(a);
|
||||
return td;
|
||||
}
|
||||
|
||||
// функция создает колонку таблицы с текстом value
|
||||
// <td>value</td>
|
||||
function createTableColumn(value) {
|
||||
const td = document.createElement("td");
|
||||
td.textContent = value;
|
||||
return td;
|
||||
}
|
||||
|
||||
// функция создает строку таблицы
|
||||
export function createTableRow(item, index, editPageCallback, deleteCallback) {
|
||||
const rowNumber = document.createElement("th");
|
||||
rowNumber.scope = "row";
|
||||
rowNumber.textContent = index + 1;
|
||||
|
||||
const row = document.createElement("tr");
|
||||
row.id = `line-${item.id}`;
|
||||
|
||||
row.appendChild(rowNumber);
|
||||
row.appendChild(createTableColumn(item.title));
|
||||
row.appendChild(createTableColumn(item.date));
|
||||
row.appendChild(createTableColumn(item.text));
|
||||
row.appendChild(createTableColumn(item.tage));
|
||||
// редактировать на странице page-edit
|
||||
row.appendChild(createTableAnchor("fa-pen-to-square", editPageCallback));
|
||||
// удаление
|
||||
row.appendChild(createTableAnchor("fa-trash", deleteCallback));
|
||||
return row;
|
||||
}
|
279
js/posts.js
Normal file
@ -0,0 +1,279 @@
|
||||
// модуль с логикой
|
||||
import {
|
||||
getAllLines, getLine, createLine, updateLine, deleteLine,
|
||||
} from "./posts-rest-api";
|
||||
import {
|
||||
cntrls, imagePlaceholder, createTableRow,
|
||||
} from "./posts-ui";
|
||||
|
||||
export async function drawLinesTable() {
|
||||
console.info("Try to load data");
|
||||
if (!cntrls.table) {
|
||||
return;
|
||||
}
|
||||
// вызов метода REST API для получения всех записей
|
||||
const data = await getAllLines();
|
||||
// очистка содержимого table
|
||||
// удаляется все, что находится между тегами <table></table>
|
||||
// но не атрибуты
|
||||
cntrls.table.innerHTML = "";
|
||||
data.forEach((item, index) => {
|
||||
cntrls.table.appendChild(
|
||||
createTableRow(
|
||||
item,
|
||||
index,
|
||||
() => location.assign(`add_news.html?id=${item.id}`),
|
||||
() => removeLine(item.id),
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
async function addLine(title, date, text, tage, image) {
|
||||
console.info("Try to add item");
|
||||
// вызов метода REST API для добавления записи
|
||||
const data = await createLine(title, date, text, tage, image);
|
||||
console.info("Added");
|
||||
console.log(data);
|
||||
drawLinesTable();
|
||||
}
|
||||
|
||||
async function editLine(id, title, date, text, tage, image) {
|
||||
console.info("Try to update item");
|
||||
// вызов метода REST API для обновления записи
|
||||
const data = await updateLine(id, title, date, text, tage, image);
|
||||
console.info("Updated");
|
||||
console.log(data);
|
||||
drawLinesTable();
|
||||
}
|
||||
|
||||
async function removeLine(id) {
|
||||
if (!confirm("Do you really want to remove this item?")) {
|
||||
console.info("Canceled");
|
||||
return;
|
||||
}
|
||||
console.info("Try to remove item");
|
||||
// вызов метода REST API для удаления записи
|
||||
const data = await deleteLine(id);
|
||||
console.log(data);
|
||||
// загрузка и заполнение table
|
||||
drawLinesTable();
|
||||
}
|
||||
|
||||
async function readFile(file) {
|
||||
const reader = new FileReader();
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
// 2. "Возвращаем" содержимое когда файл прочитан
|
||||
// через вызов resolve
|
||||
// Если не использовать Promise, то всю работу по взаимодействию
|
||||
// с REST API пришлось бы делать в обработчике (callback) функции
|
||||
// onloadend
|
||||
reader.onloadend = () => {
|
||||
const fileContent = reader.result;
|
||||
// Здесь могла бы быть работа с REST API
|
||||
// Чтение заканчивает выполняться здесь
|
||||
resolve(fileContent);
|
||||
};
|
||||
// 3. Возвращаем ошибку
|
||||
reader.onerror = () => {
|
||||
// Или здесь в случае ошибки
|
||||
reject(new Error("oops, something went wrong with the file reader."));
|
||||
};
|
||||
// Шаг 1. Сначала читаем файл
|
||||
// Чтение начинает выполняться здесь
|
||||
reader.readAsDataURL(file);
|
||||
});
|
||||
}
|
||||
|
||||
// функция для обновления блока с превью выбранного изображения
|
||||
async function updateImagePreview() {
|
||||
// получение выбранного файла
|
||||
// возможен выбор нескольких файлов, поэтому необходимо получить только первый
|
||||
const file = cntrls.image.files[0];
|
||||
// чтение содержимого файла в виде base64 строки
|
||||
const fileContent = await readFile(file);
|
||||
console.info("base64 ", fileContent);
|
||||
// обновление атрибута src для тега img с id image-preview
|
||||
cntrls.imagePreview.src = fileContent;
|
||||
}
|
||||
|
||||
// Функция для обработки создания и редактирования элементов таблицы через страницу page-edit.html
|
||||
export async function linesPageForm() {
|
||||
console.info("linesPageForm");
|
||||
// func1 = (id) => {} аналогично function func1(id) {}
|
||||
const goBack = () => location.assign("/admin.html");
|
||||
|
||||
// Вызов функции обновления превью изображения при возникновении
|
||||
// события onchange в тэге input с id image
|
||||
cntrls.image.addEventListener("change", () => updateImagePreview());
|
||||
|
||||
// получение параметров GET-запроса из URL
|
||||
// параметры перечислены после символа ? (?id=1&color=black&...)
|
||||
const urlParams = new URLSearchParams(location.search);
|
||||
|
||||
// получение значения конкретного параметра (id)
|
||||
// указан только при редактировании
|
||||
const currentId = urlParams.get("id");
|
||||
// если id задан
|
||||
if (currentId) {
|
||||
try {
|
||||
// вызов метода REST API для получения записи по первичному ключу(id)
|
||||
const line = await getLine(currentId);
|
||||
// заполнение формы для редактирования
|
||||
cntrls.title.value = line.title;
|
||||
cntrls.date.value = line.date;
|
||||
cntrls.text.value = line.text;
|
||||
cntrls.tage.value = line.tage;
|
||||
// заполнение превью
|
||||
// Если пользователь выбрал изображение, то оно загружается
|
||||
// в тэг image с id image - preview
|
||||
// иначе устанавливается заглушка, адрес которой указан в imagePlaceholder
|
||||
cntrls.imagePreview.src = line.image ? line.image : imagePlaceholder;
|
||||
} catch {
|
||||
goBack();
|
||||
}
|
||||
}
|
||||
|
||||
// обработчик события отправки формы
|
||||
cntrls.form.addEventListener("submit", async (event) => {
|
||||
console.info("Form onSubmit");
|
||||
// отключение стандартного поведения формы при отправке
|
||||
// при отправке страница обновляется и JS перестает работать
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
// если форма не прошла валидацию, то ничего делать не нужно
|
||||
if (!cntrls.form.checkValidity()) {
|
||||
return;
|
||||
}
|
||||
|
||||
let imageBase64 = "";
|
||||
// Получение выбранного пользователем изображения в виде base64 строки
|
||||
// Если пользователь ничего не выбрал, то не нужно сохранять в БД
|
||||
// дефолтное изображение
|
||||
if (cntrls.imagePreview.src !== imagePlaceholder) {
|
||||
// Загрузка содержимого атрибута src тэга img с id image-preview
|
||||
// Здесь выполняется HTTP запрос с типом GET
|
||||
const result = await fetch(cntrls.imagePreview.src);
|
||||
// Получение из HTTP-ответа бинарного содержимого
|
||||
const blob = await result.blob();
|
||||
// Получение base64 строки для файла
|
||||
// Здесь выполняется Promise из функции readFile
|
||||
// Promise позволяет писать линейный код для работы с асинхронными методами
|
||||
// без использования обработчиков (callback) с помощью await
|
||||
imageBase64 = await readFile(blob);
|
||||
}
|
||||
|
||||
// если значение параметра запроса не задано,
|
||||
// то необходимо выполнить добавление записи
|
||||
// иначе обновление записи
|
||||
if (!currentId) {
|
||||
await addLine(
|
||||
cntrls.title.value,
|
||||
cntrls.date.value,
|
||||
cntrls.text.value,
|
||||
cntrls.tage.value,
|
||||
imageBase64,
|
||||
);
|
||||
} else {
|
||||
await editLine(
|
||||
currentId,
|
||||
cntrls.title.value,
|
||||
cntrls.date.value,
|
||||
cntrls.text.value,
|
||||
cntrls.tage.value,
|
||||
imageBase64,
|
||||
);
|
||||
}
|
||||
goBack();
|
||||
});
|
||||
}
|
||||
|
||||
export async function UpdateNews() {
|
||||
const data = await getAllLines();
|
||||
data.reverse();
|
||||
const div0 = document.createElement("div");
|
||||
div0.setAttribute("class", "row row-cols-1 row-cols-md-3 g-4");
|
||||
cntrls.list.appendChild(div0);
|
||||
|
||||
data.forEach((item) => {
|
||||
UpdateNew(div0, item);
|
||||
});
|
||||
}
|
||||
|
||||
/* <div class="col">
|
||||
<div class="card h-100">
|
||||
<img src="${elem.image}" class="card-img-top" alt="">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">${elem.title}</h5>
|
||||
<p class="card-text"><small class="text-body-secondary">${elem.date}</small></p>
|
||||
<p class="card-text">${elem.text}</p>
|
||||
<тег>
|
||||
</div>
|
||||
</div>
|
||||
</div> */
|
||||
|
||||
async function UpdateNew(div0, item) {
|
||||
console.info(item.id + " was created");
|
||||
|
||||
// колонка
|
||||
const div1 = document.createElement("div");
|
||||
div1.setAttribute("class", "col");
|
||||
|
||||
// пост
|
||||
const div2 = document.createElement("div");
|
||||
div2.setAttribute("class", "card h-100");
|
||||
|
||||
// картинка
|
||||
const image = document.createElement("img");
|
||||
image.setAttribute("src", item.image);
|
||||
image.setAttribute("width", "100%");
|
||||
image.setAttribute("height", "330px");
|
||||
image.setAttribute("alt", item.title);
|
||||
|
||||
// card-body
|
||||
const div3 = document.createElement("div");
|
||||
div3.setAttribute("class", "card-body");
|
||||
|
||||
// Заголовок
|
||||
const h5 = document.createElement("h5");
|
||||
h5.setAttribute("class", "card-title");
|
||||
h5.textContent = item.title;
|
||||
|
||||
// для даты
|
||||
const p1 = document.createElement("p");
|
||||
p1.setAttribute("class", "card-text");
|
||||
|
||||
const small1 = document.createElement("small");
|
||||
p1.setAttribute("class", "text-body-secondary");
|
||||
p1.textContent = item.date;
|
||||
|
||||
// для текста
|
||||
const p2 = document.createElement("p");
|
||||
p2.setAttribute("class", "card-text");
|
||||
p2.textContent = item.text;
|
||||
|
||||
// для тега
|
||||
const small2 = document.createElement("small");
|
||||
small2.setAttribute("class", "text-body-secondary");
|
||||
|
||||
// ссылка для тега
|
||||
let aTages = item.tage.split(" ");
|
||||
for (let i = 0; i < aTages.length; i++) {
|
||||
const element = aTages[i];
|
||||
const a1 = document.createElement("a");
|
||||
a1.setAttribute("href", "#");
|
||||
a1.textContent = "#" + element + " ";
|
||||
small2.appendChild(a1);
|
||||
}
|
||||
|
||||
div0.appendChild(div1);
|
||||
div1.appendChild(div2);
|
||||
div2.appendChild(image);
|
||||
div2.appendChild(div3);
|
||||
div3.appendChild(h5);
|
||||
div3.appendChild(p1);
|
||||
p1.appendChild(small1);
|
||||
div3.appendChild(p2);
|
||||
div3.appendChild(small2);
|
||||
}
|
26
js/validation.js
Normal file
@ -0,0 +1,26 @@
|
||||
/* eslint-disable linebreak-style */
|
||||
// модуль используется для валидации форма на странице
|
||||
|
||||
function validation() {
|
||||
// поиск всех форма с классом .needs-validation
|
||||
const forms = document.querySelectorAll("form.needs-validation");
|
||||
|
||||
for (let i = 0; i < forms.length; i += 1) {
|
||||
const form = forms[i];
|
||||
// для каждой формы добавляется обработчик события отправки
|
||||
form.addEventListener("submit", (event) => {
|
||||
// если форма не прошла валидацию
|
||||
// то выключить стандартное действие
|
||||
if (!form.checkValidity()) {
|
||||
event.preventDefault();
|
||||
// предотвращает распространение preventDefault
|
||||
// на другие объекты
|
||||
event.stopPropagation();
|
||||
}
|
||||
// добавляет к форме класс was-validated
|
||||
form.classList.add("was-validated");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default validation;
|
14
jsconfig.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Node",
|
||||
"target": "ES2020",
|
||||
"jsx": "preserve",
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"**/node_modules/*"
|
||||
]
|
||||
}
|
64
news.html
Normal file
@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id="content" style="text-align: justify; line-height: 2em">
|
||||
<h3 style="text-align: center;">Новости университета</h3>
|
||||
<br>
|
||||
<div id="list-news"></div>
|
||||
<br><br>
|
||||
<form action="admin.html">
|
||||
<button style="display: block; margin-left: auto; margin-right: auto;" class="btn btn-primary">Админская страница</button>
|
||||
</form>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
<script type = "module">
|
||||
import { UpdateNews } from "./js/posts.js";
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
UpdateNews();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
4700
package-lock.json
generated
Normal file
27
package.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "TSTU",
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
"description": "internet-programming 2023",
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
"serve":"http-server -p 5501 ./dist/",
|
||||
"build": "vite build",
|
||||
"rest": "json-server --watch data.json -p 8081",
|
||||
"dev": "npm-run-all --parallel rest start",
|
||||
"prod": "npm-run-all build --parallel serve rest"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "5.2.1",
|
||||
"@fortawesome/fontawesome-free": "6.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "4.4.9",
|
||||
"eslint": "8.50.0",
|
||||
"eslint-config-airbnb-base": "15.0.0",
|
||||
"eslint-plugin-import": "2.28.1",
|
||||
"http-server": "14.1.1",
|
||||
"json-server": "0.17.4",
|
||||
"npm-run-all": "4.1.5"
|
||||
}
|
||||
}
|
120
registration.html
Normal file
@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: center; line-height: 1.3em">
|
||||
<h3>Регистрация</h3>
|
||||
Регистрация на нашем сайте позволит Вам стать его полноценным участником.<br>
|
||||
Вы сможете просматривать расписание групп, свои оценки и учебный план.
|
||||
В случае возникновения проблем с регистрацией, обратитесь к <a href="contacts.html">администратору</a>.
|
||||
<br><br>
|
||||
<div class="container-xl px-4 py-2 text-center">
|
||||
<form id="registration-form" class="needs-validation" action="./index.html" method="get" novalidate>
|
||||
<div class="row" margin="">
|
||||
<div class="col-lg-6 col-xl-4">
|
||||
<div class="p-3">
|
||||
<label for="name" class="form-label">Имя:</label><br>
|
||||
<input class="form-control" type="text" name="name" placeholder="Имя" id="name" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="email" class="form-label">Email:</label><br>
|
||||
<input class="form-control" type="email" name="email" placeholder="Емэйл" id="email" required>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-xl-4">
|
||||
<div class="p-3">
|
||||
<label for="lastname" class="form-label">Фамилия:</label><br>
|
||||
<input class="form-control" type="text" name="lastname" placeholder="Фамилия" id="lastname" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="pass" class="form-label">Пароль:</label><br>
|
||||
<input class="form-control" type="password" name="pass" placeholder="Пароль" id="pass" required>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-xl-4">
|
||||
<div class="p-3">
|
||||
<label for="birth-year" class="form-label">Дата рождения:</label><br>
|
||||
<input class="form-control" type="date" name="birth-year" placeholder="Год рождения" id="birth-year" required>
|
||||
<br>
|
||||
<br>
|
||||
<label for="repass" class="form-label">Проверка пароля:</label><br>
|
||||
<input class="form-control" type="password" name="repass" placeholder="Проверка пароля" id="repass" required>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-14">
|
||||
<div class="form p-3">
|
||||
<h5>Ваш статус:</h5>
|
||||
<input class="form-check-input" type="radio" name="state" id="student" value="Студент" required>
|
||||
<label for="student" style="margin-right: 20px;">Студент</label>
|
||||
<input class="form-check-input" type="radio" name="state" id="teacher" value="Преподаватель" required>
|
||||
<label for="teacher">Преподаватель</label>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<br><br>
|
||||
<div class="col-14">
|
||||
<div class="p-3">
|
||||
<button type="submit" class="btn btn-primary">Зарегистрироваться</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
<script type="module">
|
||||
import validation from "./js/validation.js";
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
validation();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
BIN
resourses/1september.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
resourses/Halloween.jpg
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
resourses/Students1.jpg
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
resourses/Students2.jpg
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
resourses/Students3.jpg
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
resourses/University.JPG
Normal file
After Width: | Height: | Size: 150 KiB |
BIN
resourses/icpc.jpg
Normal file
After Width: | Height: | Size: 200 KiB |
BIN
resourses/logo.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
resourses/robokross.jpg
Normal file
After Width: | Height: | Size: 209 KiB |
BIN
resourses/палитра.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
65
university.html
Normal file
@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ГПУ</title>
|
||||
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<script type="module" src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<a href="index.html"><img id="logo" src="resourses/logo.png" height="50px"></a>
|
||||
<a href="index.html">Государственный политехнический университет</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-md bg-purple" >
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="university.html">Об университете</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="news.html">Новости</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="abiturient.html">Поступающему</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="registration.html">Регистрация</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="contacts.html">Контакты</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div id="content" style="text-align: justify; line-height: 2em; text-indent: 25px;">
|
||||
<h3 style="text-align: center;">История ГПУ</h3>
|
||||
<p>29 мая 2001 года решением правительства РФ был создан Государственный политехнический университет. Новый ВУЗ был образован на базе Тольяттинского политехнического института и Тольяттинского филиала Самарского государственного педагогического университета.</p>
|
||||
<p>История Политехнического института начинается с вечернего отделения Куйбышевского индустриального института, созданного при Куйбышевгидросторе в 1951 году. Строительство ГЭС остро нуждалось в квалифицированных инженерах. Руководил факультетом Д.Е. Чуркин, а в 1953 году его сменил к.т.н. В.Н. Зубков.</p>
|
||||
<p>1 сентября 1951 года начались занятия 150 студентов. Первое время преподаватели приезжали из Куйбышева, лекции читали многие инженеры-практики со стройки, и сам начальник КГС И.В. Комзин. На отделении было всего два штатных сотрудника: В.Н. Зубков и А.Э. Лившиц. В 1962 году число сотрудников возросло до 90 человек, 8 из них имели ученую степень кандидатов наук.</p>
|
||||
<p>В 1956 году состоялся первый выпуск инженеров-гидростроителей и инженеров-электриков. Постепенно открывались новые специальности, в 1959 году получили дипломы первые инженеры-механики. В 1961 было открыто дневное обучение.</p>
|
||||
<p>В 1961 году были открыты механический факультет (декан В.Н. Зубков) и химико-электротехнический (декан Б.Н. Рачинский). В 1964 году был создан химико-технологический факультет. В 1966 году были выпущены первые инженеры-технологи химического производства. В 1966 году на трех факультетах обучались 2800 студентов.</p>
|
||||
<p>В октябре 1966 года на базе филиала был образован Тольяттинский политехнический институт. Немалую роль в организации института сыграли потребности в кадрах строящегося ВАЗа, а также наличие материальной базы.</p>
|
||||
<p>Первым ректором нового ВУЗа был назначен профессор, доктор технических наук видный ученый из Куйбышева Арон Наумович Резников. Он сумел привлечь новые квалифицированные кадры и создал современный институт с высоким учебным и научным потенциалом. Были созданы 13 новых кафедр, в том числе единственная в стране кафедра промышленной пайки. Благодаря А.Н. Резникову через 10 лет в ТПИ работали 7 докторов наук и 151 кандидат наук. За это время почти в 2 раза возрос набор студентов, и в 10 раз возросли объемы научных работ. Наиболее успешными были 80-е гг., когда учёные ТПИ осваивали в год около 3 млн. руб.</p>
|
||||
<p>Ежегодно ученые института получали десятки свидетельств на изобретения, всего же со времени создания ТПИ было получено 1134 авторских свидетельства на изобретения.</p>
|
||||
<p>ТГУ – современный инновационный вуз. В 2010 году университет стал победителем конкурса Правительства РФ на Премию качества за 2009 год, дважды – в 2004 и 2011 году ТГУ стал лауреатом конкурса «Европейское качество» в группе «100 лучших вузов России». В 2011 году ТГУ завоевал по итогам конкурса СНГ за достижения в области качества оказания услуг приз «Признание делового совершенства». Ректор ТГУ М.М. Криштал в 2011 г. удостоен звания «Российский лидер качества», награждён дипломом и медалью, такую высокую оценку деятельности дала «Всероссийская организация качества».</p>
|
||||
<p>В 2014 году в составе ТГУ 11 институтов, включая институт военного обучения, 44 кафедры, институт дистанционного обучения.</p>
|
||||
<br>
|
||||
<img src="resourses/University.JPG" height="250px">
|
||||
</div>
|
||||
<div id="footer">
|
||||
<ul>
|
||||
<li>Адреса и контакты:</li>
|
||||
<li>432027, г. Тольятти, ул. Ларина, д.32</li>
|
||||
<li>+7 (8332) 43-06-55</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
21
vite.config.js
Normal file
@ -0,0 +1,21 @@
|
||||
import { resolve } from "path";
|
||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
import { defineConfig } from "vite";
|
||||
|
||||
export default defineConfig({
|
||||
build: {
|
||||
sourcemap: true,
|
||||
emptyOutDir: true,
|
||||
rollupOptions: {
|
||||
input: {
|
||||
main: resolve(__dirname, "index.html"),
|
||||
abiturient: resolve(__dirname, "abiturient.html"),
|
||||
add_news: resolve(__dirname, "add_news.html"),
|
||||
contacts: resolve(__dirname, "contacts.html"),
|
||||
news: resolve(__dirname, "news.html"),
|
||||
registration: resolve(__dirname, "registration.html"),
|
||||
university: resolve(__dirname, "university.html"),
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|