216 lines
14 KiB
HTML
216 lines
14 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en"
|
|
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
|
layout:decorate="~{default}" xmlns:th="">
|
|
<head>
|
|
<link rel="stylesheet" type="text/css" href="../css/conference.css"/>
|
|
</head>
|
|
<body>
|
|
<div layout:fragment="content">
|
|
<section id="conference">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<h5 class="section-heading text-uppercase text-center">Редактирование конференции</h5>
|
|
<div th:replace="conferences/fragments/confNavigationFragment"/>
|
|
</div>
|
|
</div>
|
|
<hr/>
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<form id="conference-form" method="post"
|
|
th:action="@{'/conferences/conference?id='+ *{id == null ? '' : id} + ''}"
|
|
th:object="${conferenceDto}">
|
|
|
|
<div class="row">
|
|
<div class="col-md-7 col-sm-12">
|
|
<input type="hidden" name="id" th:field="*{id}"/>
|
|
|
|
<div class="form-group">
|
|
<label for="title">Название:</label>
|
|
<input class="form-control" th:field="*{title}" id="title" type="text"
|
|
placeholder="Название конференции"/>
|
|
</div>
|
|
|
|
<p th:if="${#fields.hasErrors('title')}" th:errors="*{title}"
|
|
class="alert alert-danger">Incorrect title</p>
|
|
<p class="help-block text-danger"></p>
|
|
|
|
<div class="form-group">
|
|
<label for="url">URL:</label>
|
|
<input class="form-control" th:field="*{url}" id="url" type="text"
|
|
placeholder="http://"/>
|
|
</div>
|
|
|
|
<p th:if="${#fields.hasErrors('url')}" th:errors="*{url}"
|
|
class="alert alert-danger">Incorrect description</p>
|
|
<p class="help-block text-danger"></p>
|
|
|
|
<div class="form-group">
|
|
<label for="description">Описание:</label>
|
|
<textarea class="form-control" rows="8" th:field="*{description}" id="description">
|
|
</textarea>
|
|
</div>
|
|
|
|
<p th:if="${#fields.hasErrors('description')}" th:errors="*{description}"
|
|
class="alert alert-danger">Incorrect description</p>
|
|
<p class="help-block text-danger"></p>
|
|
|
|
<div class="form-group">
|
|
<label for="deadlines">Дедлайны:</label>
|
|
<div class="deadline-list form-control list-group" id="deadlines">
|
|
<input type="hidden" th:field="*{removedDeadlineIds}"/>
|
|
<div class="deadline d-flex p-0 list-group-item list-group-horizontal"
|
|
th:each="deadline, rowStat : *{deadlines}">
|
|
<input type="hidden" th:field="*{deadlines[__${rowStat.index}__].id}"/>
|
|
<input class="deadline-text col-md list-group-item" type="text"
|
|
placeholder="Описание"
|
|
th:field="*{deadlines[__${rowStat.index}__].description}"/>
|
|
<input class="list-group-item" type="date" name="deadline"
|
|
th:field="*{deadlines[__${rowStat.index}__].date}"/>
|
|
<input type="submit" class="icon icon-delete grey-border"
|
|
alt="Удалить" name="removeDeadline" th:value="${rowStat.index}"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<p th:if="${#fields.hasErrors('deadlines')}" th:errors="*{deadlines}"
|
|
class="alert alert-danger">Incorrect title</p>
|
|
<p class="help-block text-danger"></p>
|
|
|
|
|
|
<div class="form-group d-flex justify-content-end">
|
|
<input type="submit" id="addDeadline" name="addDeadline"
|
|
class="btn btn-primary"
|
|
value="Добавить дедлайн"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-5 col-sm-12 offset-sm-0">
|
|
<div class="form-group">
|
|
<label for="dates">Дата проведения:</label>
|
|
<div class="row" id="dates">
|
|
<div class="d-flex col justify-content-between dates-panel">
|
|
<div class="date">
|
|
<input class="grey-border form-control" type="date"
|
|
th:field="*{beginDate}" id="begin-date"/>
|
|
</div>
|
|
|
|
<div class="date">
|
|
<input class="grey-border form-control" type="date"
|
|
th:field="*{endDate}" id="end-date"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p th:if="${#fields.hasErrors('beginDate') || #fields.hasErrors('endDate')}"
|
|
th:errors="*{beginDate}"
|
|
class="alert alert-danger">Incorrect date</p>
|
|
<p class="help-block text-danger"></p>
|
|
|
|
<div class="form-group">
|
|
<label for="members">Участники:</label>
|
|
<div class="member-list form-control list-group" id="members">
|
|
<div class="member d-flex list-group-item p-0"
|
|
th:each="user, rowStat : *{users}">
|
|
<input type="hidden" th:field="*{users[__${rowStat.index}__].id}"/>
|
|
<input type="hidden" th:field="*{users[__${rowStat.index}__].user}"/>
|
|
<input class="member-name w-100" readonly="true"
|
|
th:field="*{users[__${rowStat.index}__].user.lastName}"/>
|
|
<select class="member-participation w-auto"
|
|
th:field="*{users[__${rowStat.index}__].participation}">
|
|
<option th:each="participation : ${allParticipation}"
|
|
th:value="${participation}"
|
|
th:text="${participation.participation}">Participation
|
|
</option>
|
|
|
|
</select>
|
|
<select class="member-deposit w-auto"
|
|
th:field="*{users[__${rowStat.index}__].deposit}">
|
|
<option th:each="deposit : ${allDeposit}" th:value="${deposit}"
|
|
th:text="${deposit.deposit}">Deposit
|
|
</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group d-flex justify-content-between flex-wrap">
|
|
<input id="ping-button" class="btn btn-primary"
|
|
type="submit" name="pingConference" value="Ping участникам"
|
|
th:disabled="*{id == null ? 'true' : 'false'}"/>
|
|
<input type="hidden" th:value="*{disabledTakePart}" th:name="disabledTakePart"/>
|
|
<input id="take-part" class="btn btn-primary"
|
|
type="submit" name="takePart" value="Принять участие"
|
|
th:disabled="*{disabledTakePart}"/>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="papers">Статьи:</label>
|
|
<div class="paper-list form-control list-group" id="papers">
|
|
<div class="paper d-flex list-group-item p-0"
|
|
th:each="paper, rowStat : *{papers}">
|
|
<input type="hidden" th:field="*{papers[__${rowStat.index}__].id}"/>
|
|
<input type="hidden" th:field="*{papers[__${rowStat.index}__].title}"/>
|
|
<input type="hidden" th:field="*{papers[__${rowStat.index}__].status}"/>
|
|
<a class="paper-name"
|
|
th:href="@{'/papers/paper?id=' + *{papers[__${rowStat.index}__].id} + ''}"
|
|
th:if="*{papers[__${rowStat.index}__].id !=null}">
|
|
<span th:replace="~{papers/fragments/paperStatusFragment :: paperStatus(paperStatus=*{papers[__${rowStat.index}__].status},
|
|
title=*{papers[__${rowStat.index}__].title}, small=false)}"/>
|
|
<span th:text="*{papers[__${rowStat.index}__].title}">
|
|
Имя статьи
|
|
</span>
|
|
</a>
|
|
<a class="paper-name"
|
|
th:unless="*{papers[__${rowStat.index}__].id !=null}">
|
|
<span th:replace="~{papers/fragments/paperStatusFragment :: paperStatus(paperStatus=*{papers[__${rowStat.index}__].status},
|
|
title=*{papers[__${rowStat.index}__].title}, small=false)}"/>
|
|
<span th:text="*{papers[__${rowStat.index}__].title}">
|
|
Имя статьи
|
|
</span>
|
|
</a>
|
|
<input type="submit" class="icon icon-delete grey-border"
|
|
alt="Удалить" name="removePaper" th:value="${rowStat.index}"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="paper-control form-group d-flex justify-content-end">
|
|
<input th:type="hidden" th:field="*{notSelectedPapers}"/>
|
|
<select class="selectpicker form-control" multiple="true" data-live-search="true"
|
|
title="Прикрепить статью" data-style="btn-primary" data-size="5"
|
|
th:field="*{paperIds}">
|
|
<option th:each="paper: *{notSelectedPapers}" th:value="${paper.id}"
|
|
th:text="${paper.title}">Status
|
|
</option>
|
|
</select>
|
|
<button id="add-paper" class="btn btn-primary"
|
|
type="submit" name="addPaper">
|
|
Добавить статью
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="clearfix"></div>
|
|
<div class="col-lg-12">
|
|
<div class="form-group d-flex justify-content-between">
|
|
<button id="send-message-button" name="save"
|
|
class="btn btn-success text-uppercase"
|
|
type="submit">
|
|
Сохранить
|
|
</button>
|
|
<a id="cancel-button" class="btn btn-default text-uppercase"
|
|
href="/conferences/conferences">
|
|
Отмена
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</body>
|
|
</html> |